发表于: 2017-06-24 14:56:04
1 892
今天完成的事情:
重新梳理一遍Angular要学习的知识一个个攻破
防压缩写法怎么写:
angular这样做是因为依赖注入的特征。通过Function.prototype.valueOf解析的话。参数名不能是被压缩之后的a.b.c.d。
但这个和angularjs本身没有关系的,你写一个数组,里面放字符串,是不会被压缩的,例如
var arr = ['joke', 'hack', 'hey'];
angular.module('name', [])是创建一个新的module,[]表示它没有依赖任何其他模块,如果已经有了一个同名模块,则会覆盖现有的。
而angular.module('name')
是查找一个现有module,如果这个module不存在,则返回空值。
如果把带方括号的形式(创建)误用为不带方括号的形式(引用),那么在它的返回值上调用controller等函数会出现空指针错误。
而如果把引用形式误用为创建形式,则会导致难以理解的“对象不存在”错误,但是你却明明定义过那个service或者controller等对象!这种问题就是因为后面的模块定义覆盖了以前的模块定义,你定义过的那些对象都被随着以前的module而丢掉了!
依赖注入是什么意思:
依赖注入是解决依赖对象与被依赖对象之间强耦合的一种最好的方法。用的时候注入,不用的时候也不会有耦合,实现了控制反转。(创建被调用对象实例的是容器或框架,需要的时候,注入就可以了,不需要调用对象去创建被调用)
自定义指令:
AngularJS的directive可以自定义出HTML标签
比如<hello></hello>
对于以上代码里面的<hello>标签,浏览器显然是不认识的,它唯一能做的事情就是无视这个标签。那么,为了让浏览器能够认识这个标签,我们需要使用Angular来定义一个hello指令(本质上说就是自己来把<hello>这种玩意儿替换成浏览器能识别的那些标准HTML标签)。
<html ng-app="myApp">
<body>
<div ng-controller='MainController'>
父亲: {{name}}
<input ng-model="name" />
<div my-directive></div>
</div>
<script>
angular.module('myApp', [])
.controller('MainController', function ($scope) {
$scope.name = 'leifeng';
})
.directive('myDirective', function () {
return {
restrict: 'EA',
scope:false,//改变此处的取值,看看有什么不同
template: '<div>儿子:{{ name }}<input ng-model="name"/></div>'
};
});
</script>
</body>
</html>
这个demo是为了理解里面scope方法:
当为false时候,儿子继承父亲的值,改变父亲的值,儿子的值也随之变化,反之亦如此。(继承不隔离)
当为true时候,儿子继承父亲的值,改变父亲的值,儿子的值随之变化,但是改变儿子的值,父亲的值不变。(继承隔离)
当为{}时候,没有继承父亲的值,所以儿子的值为空,改变任何一方的值均不能影响另一方的值。(不继承隔离)
$http几个点:$http的请求头部 参数能怎么写:
浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字符串(name1=value1&name2=value2...)
,然后把这个字串append到url后面,用?分割,加载这个新的url。
明天计划的事情:
用directive自定义一个翻页指令,封装起来。今天已经开始做了大概。
遇到的问题:
坑还要慢慢踩,学Angular接触了很多后端的设计思想,刚学起来可能还是要慢一点。
收获:
上述知识点
评论