Stworzyłem dyrektywę, która działa doskonale. Teraz po wpadnięciu angular
do 1.5.0
, stwierdziłem, że ta dyrektywa jest typowym przykładem tego, co można napisać przy użyciu nowej notacji .component()
.Nie można wymagać dyrektywy w komponencie AngularJS 1.5
Z jakiegoś powodu właściwość require
już nie działa.
Poniżej przedstawiono uproszczony przykład:
angular.module('myApp', [])
.component('mirror', {
template: '<p>{{$ctrl.modelValue}}</p>',
require: ['ngModel'],
controller: function() {
var vm = this;
var ngModel = vm.ngModel;
ngModel.$viewChangeListeners.push(onChange);
ngModel.$render = onChange;
function onChange() {
vm.modelValue = ngModel.$modelValue;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-app="myApp">
<input ng-model="someModel"/>
<mirror ng-model="someModel"></mirror>
</div>
że próbował również za pomocą require
jako prostego łańcucha:
...
require: 'ngModel'
...
i jako obiekt:
...
require: {
ngModel: 'ngModel'
}
...
Przyjrzałem się dokumentom dla $compile i component, ale nie mogę sprawić, żeby działało.
Jak mogę wymagać innych kontrolerów dyrektyw w komponencie AngularJS 1.5?