범위 속성을 설정해야하는 ng-repeater 내에 지시문이 있습니다. 여기에 바이올린을 참조하십시오 http://jsfiddle.net/paos/CSbRB/ 문제는 범위 속성과 같은 속성 값으로 부여되는자식 범위에서 지시어에서 각도 컨트롤러 개체 속성 값을 설정하는 방법
: inputdata.title 일부 문자열이 지침은 범위 속성을 설정하도록되어
<button ng-update1="inputdata.title">click me</button>
. 이 작동하지 않습니다
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";
당신은 내가 가진 범위 속성을 설정하는 방법을 말해 주시겠습니까. 그것의 이름에서 표기법에 표기법?
추신 : 피들이 리피터를 사용하는 이유는 지시어를 하위 범위에 포함시키기 때문입니다. 자식 범위에 있으면 프리미티브 인 범위 속성에 쓸 수 없습니다. 그래서 "."과 함께 객체 속성이 필요합니다. 이름으로. 여기에 긴 설명을 참조하십시오 What are the nuances of scope prototypal/prototypical inheritance in AngularJS?
감사합니다
세련되지 솔루션이 될 것 $의 apply', 예를 들어'의 캐릭터 라인 형식 사용 :.'범위를 적용 $ (attrs.ngUpdate1 + '='+ ' "버튼 1"');'. –
@ Josh, 내 대답을 볼 수 없었던 경우를 대비해 우아한 해결책은'$ parse'를 사용하는 것입니다. –