【1.5.8版本和1.6.2版本的区别】
1、$http
1.5.8之前 $http都是用success/error接收数据 1.6.2是通过then和catch控制成功和失败函数,并且返回值之前是直接拿到,1.6.2返回时一个新的对象,要通过params.data才能获取
2、路由
href锚点由 #/index –> #!/index 多了一个!号,如果不想在每一个标签href都写!,要通过$locationprovider配置hashprefix(\\\’\\\’)前缀为空
3、跨域
要设置白名单,提前把你想要的跨域的域名填写到指定位置,设置白名单后就不需要callback参数的设置
eg:
白名单操作
app.config(\\\’$scedelegateprovider\\\’,[\\\’$scedelegateprovider\\\’, function(){
$scedelegateprovider.resourceurlwhitelist([\\\’self\\\’, \\\’http://localhost/api/\\\’]);
}])
【angulaarjs】(ng)
1、4个特性:mvc 模块化 自动化双向数据绑定 指令系统
2、所有需要ng管理的代码(容器)必须被包裹在一个ng-app指令的元素(angular应用程序管理的边界)中,对包裹在内的ng指令进行分析和操作 ng-xxx属性称之为指令(directive)
3、模块化编程基本思想步骤(这里的步骤指的是单向绑定,即模型数据展示给视图)
(1)创建一个模块 var app = angular.module("模块名称","该模块依赖的其他模块名称(没有依赖就写"[]")");
(2)把模块名称赋值给ng-app(划分的边界)
(3)通过该模块创建出一个控制器(controller) app.controller("democontroller(控制器名称)",function($scope 该参数写死){$scope.user = {} …})这里的$scope就是数据库,可以把里面的数据、行为暴露给视图
(4)把该控制器赋值给边界标签的 ng-controller
4、angular.module注意细节
传入一个参数是获取模块(前提有这个模块)传入两个参数是创建模块,如果没有这个模块而且也没有填写第二个参数"[]"那么就会报错
【mvc】
1、只是一种应用程序的开发思想,不是设计模式
model: 处理数据和业务逻辑
view: 以友好的方式向用户展示数据
控制器(controller): 组织调度相应的处理模型(注:一个模型内可以有多个控制器,控制器之间不能嵌套)
【内置指令(指令系统)】
(基本)
1、ng-app 指定应用根元素,至少有一个(边界)
2、ng-controller 指定控制器
3、ng-model 视图层绑定数据给模型层(双向绑定的基础)
4、ng-init 初始化数据(当数据层没有数据传过来,默认用初始化数据值 eg: ng-init="name=\\\’zs\\\’");
5、ng-bind 绑定模型层的数据,这样避免在内容中 "{{}}" 这样格式先在页面出现一次,缺点:每次只能绑定一个数据 用法: ng-bind="name"
6、ng-bind-template 绑定模型层多个数据 用法 ng-bind-template="{{name}} {{age}}"
(常用)
7、ng-switch 处理类似tab栏的例子,接收数据属性,常与ng-switch-when使用,后者是指定属性值
8、ng-src 增强图片路径,不会出现裂图情况,因为ng-不是html原本属性
9、ng-href 增强地址
10、ng-class 控制类名(用法 ng-class="{类名: ture/false}")
11、ng-include 引入模板(在一个网站中引入多个html文件拼接在一个网站上,ng-include="\\\’index.html\\\’" (注意里面要加上单引号)必须要在服务器上才可以正常引入)
12、ng-disabled 表单禁用
13、ng-readonly 表单只读
14、ng-checked 单/复选框表单选中
15、ng-selected 下拉框表单选中
16、ng-click="click($event)" 这里的$event是ng提供的类似于鼠标事件中的e,传递参数
【ng-repeat的补充】
1、正常情况数组或者对象可以通过 no-repeat="key in property" 或者 no-repeat="(index, val) in property"在元素上进行迭代
但是遇到数组有重复的名字的时候,如[\\\’a\\\’,\\\’b\\\’,\\\’c\\\’,\\\’a\\\’]; 控制台就会出现重复元素的报错信息,解决办法no-repeat="key in property track by $index", track by是让数组都有一个不重复的值进行标记,后面跟随的$index只要是数组元素不重复的信息即可,如id,下标等标识
2、es5新增的属性str.startswith/endwith】
可以通过这样的写法得出元素开头的字符
eg: ng-repeat="name in arr track by $index" ng-class="{red: name.startswith="a"}"; 这样就实现全部a开头的绑定red类名,可以实现查找字符查找数组内容
【ng-model的补充】
1、ng-model只能给表单元素(select)进行双向绑定,当给select标签通过ng-model绑定属性,那么select中的option中的value值会同步到ng-model绑定的属性上,这样就可通过同步的值去控制一些想要的效果
eg:
<select name="" id="" ng-model="style"> <option value="red">红色</option> <option value="green">绿色</option> </select> <div ng-class="style"></div> //当选择红色时,style的值就会等于red,那么ng-class的值也会变为red
【自定义指令】
1、通过模块对象的directive方法自定义指令
app.directive("temp", function(){
/*返回一个对象,这个对象就是自定义指定的相关内容*/
return {
restrict: "ecma", //e: element元素 a: attribute属性 c:class类 m: mark replace必须为true
templateurl: "./head.html", //template:’<ul><li>列表</li></ul>’ 或者 templateurl: ‘./head.html’
replace: true //是否替换原有标签(指的是html标签)
}
})
注: 这里的e 指的是 <temp></temp>这样指定
a 指的是 <div temp></div>
【作用域】
1、angularjs作用域是通过html标签属性中的控制器进行嵌套,访问方式类似函数作用域访问方式
【管道符"|"】
1、在过滤器和正则表达式中都大量用到管道符概念,其作用是把管道符前面的结果,用后面的方式输出(及前方的输出结果为后者的输入)
【过滤器】(就是一个方法)
1作用:就是接收一个输入,通过某个规则进
笔记本电脑提示电源已接通,未充电的多种原因与解决方法QQ好友的价值玩法 及如何搞到几万好友?什么的虚拟主机最好用腾讯云数据库服务器租用2020年移动应用的设计新趋势你知道几点?网站都打不开了服务器无法联网阿里云php服务器搭建网站robots怎么写?robots文件写法详解?