当我使用 angular.component() 创建 angular 1.5 提供的全新组件时,没有链接功能,因此注入 ngModelController 或任何其他控制器的旧方法不起作用。
require: 'ngModel',
link: function(scope, element, attrs, ctrls)
上面的代码是用于访问 ngModelController 的指令。我们现在如何在组件中访问它?
当我使用 angular.component() 创建 angular 1.5 提供的全新组件时,没有链接功能,因此注入 ngModelController 或任何其他控制器的旧方法不起作用。
require: 'ngModel',
link: function(scope, element, attrs, ctrls)
上面的代码是用于访问 ngModelController 的指令。我们现在如何在组件中访问它?
您现在可以按名称获取它们,而不是获取ctrls
数组,就像bindings
使用:
class MyComponentController implements ng.IComponentController {
public modelCtrl: ng.INgModelController;
...
...
// use modelCtrl here
// instead of ctrls[0]
...
...
}
const MyComponent: ng.IComponentOptions = {
template: '...',
bindings: {...},
require: {modelCtrl: 'ngModel'},
controller: MyComponentController
}
angular.module('myModule').component('MyComponent', MyComponent);
或者,如果你更喜欢纯 JS:
function MyComponentController() {
...
...
// use this.modelCtrl here
...
...
}
var MyComponent = {
template: '...',
bindings: {...},
require: { modelCtrl: 'ngModel' },
controller: MyComponentController
};
angular.module('myModule').component('MyComponent', MyComponent);