У меня есть директива внутри ng-повторителя, которая должна установить свойство scope. Смотрите здесь скрипку: http://jsfiddle.net/paos/CSbRB/
Проблема заключается в том, что свойство scope задано как значение атрибута, подобное этому:
<button ng-update1="inputdata.title">click me</button>
Директива должна установить свойство scope inputdata.title для некоторой строки. Это не работает:
app.directive('ngUpdate1', function() {
return function(scope, element, attrs) {
element.bind('click', function() {
scope.$apply(function() {
scope[ attrs.ngUpdate1 ] = "Button 1";
});
});
};
});
Однако назначение напрямую работает:
scope["inputdata"]["title"] = "Button 1";
Не могли бы вы рассказать мне, как я могу установить свойство scope. обозначение в его имени из директивы?
PS: Причина, по которой скрипта использует ретранслятор, заключается в том, что он делает директивы в области дочерних объектов. Когда они находятся в дочерней области, вы не можете писать свойства области, которые являются примитивами. Вот почему мне нужно свойство объекта с. во имя. Посмотрите длинное объяснение здесь: Каковы нюансы объема прототипа/прототипного наследования в AngularJS?
Спасибо