Как получить доступ к ngModelController в компонентах Angular1.5?
Когда я использую angular.component() для создания нового компонента, который предоставляет angular 1.5, функция связи отсутствует, поэтому старый способ внедрения ngModelController или любых других контроллеров не работает.
require: 'ngModel',
link: function(scope, element, attrs, ctrls)
Приведенный выше код предназначен для доступа к ngModelController. Как мы можем получить к нему доступ в компоненте сейчас?
1 ответ
Вместо того, чтобы получить 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);