я директива определяется как:Угловая атрибут директивы добавить нг-изменение
module.directive('inputChanged', function() {
function link(scope, element, attrs) {
var field = attrs.ngModel;
if (field) {
var fn = "model.changed('" + field + "')";
element.attr('ng-change', fn);
}
}
return {
restrict: 'A',
link: link
}
});
, который я использую, как:
<input ng-model="model.user.middleName" input-changed type="text" class="k-textbox">
цель - динамически i nge-change с полем модели в качестве параметра. Мой сценарий на самом деле немного сложнее, но я упрощаю его для этого вопроса. Вот почему мне нужно вводить его динамически, а не размещать его непосредственно во входной разметке.
Это работает, и я вижу изменение ng в разметке после рендеринга страницы.
<input ng-model="model.user.middleName.value" type="text" class="k-textbox ng-valid ng-not-empty ng-dirty ng-valid-parse ng-touched" ng-change="model.changed('model.user.middleName.value')" aria-invalid="false">
Проблема заключается в том, что model.changed (...) не стреляя. Если я использую hardcode вместо использования директивы, все работает так, как ожидалось.
Что мне не хватает?
спасибо.
удивительного @ndoes. кто это сделал. Спасибо за вашу помощь. – dpdragnev
Добро пожаловать. – ndoes