Я хочу обновить атрибут элемента через его id и отредактировать элемент для этого изменения.AngularJS: изменение атрибута watch/observ
Я попытался создать plunkr, чтобы отразить мою ситуацию, но там я, похоже, не получаю даже ng-click для работы.
Однако то, что я хочу сделать, это вызвать функцию, которая делает следующее
var cell = angular.element(document.querySelector('#' + cellName));
cell.attr('card-id', id);
который, кажется, работает, в соответствии со значениями я могу читать снова непосредственно после этих строк.
приемного элемент выглядит следующим образом:
deckbuilderApp.directive('card', function() {
return {
restrict: 'E',
replace: true,
templateUrl: 'tpl/deckCard.tpl.html',
scope: {
cardId: '=cardId'
},
link: function(scope, element, attrs) {
attrs.$observe('cardId', function(newId) {
console.log('observe cardId: new Value: ' + newId);
console.log('observe cardId: id: ' + scope.id + ' scope:' + scope);
});
scope.$watch('cardId', function(oldValue, newValue) {
console.log('$watch cardId: ' + oldValue + ' -> ' + newValue);
});
attrs.$observe(function() { return attrs.cardId }, function(newId) {
console.log('ssssobserve card-id: new Value: ' + newId);
console.log('sssssobserve card-id: id: ' + scope.id + ' scope:' + scope);
});
scope.$watch(function() { return attrs.cardId }, function(oldValue, newValue) {
console.log('sssssssssss$watch card-id: ' + oldValue + ' -> ' + newValue);
});
console.log('linked card directive');
}
}
});
часы и функция наблюдателя (за исключением «ssssobserver») дозвонился на intialization, когда я установить значение с помощью нг-повтора.
Последующие изменения атрибута идентификатора карты не вызывают код часов или наблюдателя.
Что мне нужно сделать, чтобы это сработало?
Благодарим вас за подробный ответ – Wonko