AngularJS中的Directive简直是个深渊,今天又小小的跟它杠上了。
以这一段为例:
1app.directive('posts', function() {
2 return {
3 scope: {
4 adding: '&'
5 },
6
7 controller: 'AppController',
8 link: function(scope, elm, attrs, ctrl) {
9 console.log(scope);
10 console.log(elm);
11 console.log(attrs);
12 console.log(ctrl);
13 },
14 template: '<input type="text" name="author" placeholder="author" ng-model="author" required><input type="text" name="content" placeholder="content" ng-model="content"><input value="post" type="submit" ng-click="adding({msg:{author:author, content: content}})">',
15 };
16});
17
通过console.log我们可以观察一下到底各个是什么东西。
scope:输出一个作用域,这个作用域是由Controller决定的,如果没有定义,是空值。
elm:输出一个元素数组,数组中的每个元素是调用directive的DOM树
attrs:输出一个Object, Object内是该DOM元素的各种属性方法
ctrl:输出一个Object,是对应的controller