AngularJS中的Directive简直是个深渊,今天又小小的跟它杠上了。
以这一段为例:
app.directive('posts', function() {
return {
scope: {
adding: '&'
},
//require: 'ngModel',
controller: 'AppController',
link: function(scope, elm, attrs, ctrl) {
console.log(scope);
console.log(elm);
console.log(attrs);
console.log(ctrl);
},
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}})">',
};
});
通过console.log我们可以观察一下到底各个是什么东西。
scope:输出一个作用域,这个作用域是由Controller决定的,如果没有定义,是空值。
elm:输出一个元素数组,数组中的每个元素是调用directive的DOM树
attrs:输出一个Object, Object内是该DOM元素的各种属性方法
ctrl:输出一个Object,是对应的controller