Я пытаюсь вычислить угловое module (Этот вопрос не является специфическим для модуля, который я изучаю, но только о сильном синтаксическом выражении, который я не понял) и внутри его основной директивы, контроллер был принят к функции связи, а затем слушатель изменить событие подсел к нему:
schedulerCtrl.on = {
change: function (itemIndex, scheduleIndex, scheduleValue) {
var onChangeFunction = $parse(attrs.onChange)(scope);
if (angular.isFunction(onChangeFunction)) {
return onChangeFunction(itemIndex, scheduleIndex, scheduleValue);
}
}
};
(этот патрон коды существует в ng-weekly-scheduler.js file в строке 362.)
attrs.onChange
получаются из декларации директивы в HTML который выглядит следующим образом:
<weekly-scheduler class="scheduler" items="model.items" on-change="demo.doSomething" on-delete="demo.doSomething" options="model.options">
<div class="srow">{{::$index + 1}}. {{item.label}}</div>
</weekly-scheduler>
Я никогда не слышал о настройке приемника событий на угловой контроллер. Поэтому, пожалуйста, кто-нибудь может сказать мне, что это значит и с какой частью углового API это связано?!
Спасибо, я до сих пор не понимаю, как может быть присоединен слушатель к экземпляру контроллера (экземпляр), я думаю, что это слушатель jquery, и обычно он должен быть прикреплен к элементу, который мы хотим прослушать. Мне было странно, что прослушиватель, подключенный к контроллеру, был бы разумным для события DOM , Что делать, если на событиях с изменениями DOM были другие элементы, как слушатель .on («change» знал бы, из какого элемента он исходит от – Bardelman
Не уверен, правильно ли я получил ваш вопрос. Подумайте, что вы пишете настраиваемую директиву, которая добавьте 5 выпадающих списков на своей странице. И в соответствии с вашим дизайном вы хотели бы дать обратный вызов контроллеру всякий раз, когда изменяется третье значение выпадающего списка, поэтому у вас будет привязка '&' для того, для которого вы назначаете метод контроллера. Внутри директивы вы будете слушать событие изменения/изменения модели третьего выпадающего списка и внутри, что вы вызовете метод обратного вызова. – Developer
Я хочу сказать, что метод schedulerCtrl.on.change не будет вызываться при изменении метод каждого элемента. Он сконфигурирован внутри директивы, когда запускается метод обратного вызова. Проверьте строку 551 в этом js-файле. – Developer