我看到以下内容:
// my-directive.js
return {
require: 'ngModel',
scope: {
ngModel: '=',
},
controller: controller,
link: myLink
};
// my-link.js
return function(scope, $element, attrs, modelController) {
scope.onMyClick = function(event) {
modelController.$setViewValue(getItem(event));
}
};
// foo.html
<my-directive ng-model="myModel"></my-directive>
ng-model
指令是否用于向声明myModel
实例的外部作用域中的my-directive
提供双向数据绑定?
这是在Angular 1.4中在指令和外部模型之间提供双向数据绑定的惯用方法吗?
除了将require: 'ngModel'
指令实例的控制器实例注入链接函数ng-model
之外,指令定义中的my-link
是否做了什么?
最后,它是否使ng-model
控制器的my-directive
控制器可以使用?
答案 0 :(得分:1)
这里有2个不同的东西 - ng-model
作为指令,ngModel: '='
作为属性。让我们拆分:
<my-directive ng-model="myModel" whatever="myModel"></my-directive>
return {
require: 'ngModel',
scope: {
myModel: '=',
},
controller: controller,
link: myLink
};
ng-model指令是否用于提供双向数据绑定 my -ode实例所在的外部作用域中的myModel 声明?
不,指令内的定义提供了双向绑定。 (whatever
这里)
这是在a之间提供双向数据绑定的惯用方法吗? Angular 1.4中的指令和外部模型?
你使用范围的一个:{ whatever : '='}
是通常的方式。
是否需要:&#39; ngModel&#39;在指令定义中做任何事情 注入ng-model指令的控制器实例 实例进入链接功能my-link
不是那么多,如果你使用没有ngModel的指令,它会抛出错误。
最后,是否可以使用ng-model的控制器 my-directive控制器的使用范围?
不,它不会为您的范围添加任何内容。您只需访问注入的控制器。