지시어에 무언가가 설정되어있을 때 업데이트하려는 범위 이름이 포함 된 지시문이 있습니다.범위 이름을 지시문으로 업데이트하십시오.
<div data-my-directive data-scope-var-to-update="my_scope_variable"></div>
.directive('myDirective', function($rootScope){
return function(scope, element, attrs){
var scope_var_name = attrs.scopeVarToUpdate;
scope[scope_var_name] = 'This message was updated from the directive';
}
})
위의 내용은 범위 변수에 점 표기법이없는 경우에만 내가 원하는 것을 할 수있게 해줍니다.
제 질문은 어떻게 $ scope.a.b와 같은 점 표기법을 포함하는 범위 변수를 맞추기 위해 위의 내용을 수정할 수 있습니까? 자사는 새로운 과제가 부모 컨트롤러에 의해 액세스 할 수 있어야 의미의 직업 수행하면
<div data-my-directive data-scope-var-to-update="a.b"></div>
위의 뒤에 아이디어는 범위 변수 이름에 전달하고 지침에서이를 업데이트하는 것입니다.
을 구문 분석 난 당신이 문자열을 구문 분석하고 각 개체를 개별적으로 만들어야 할 것 같아요. a = {}처럼 a.b = "이 메시지는 업데이트되었습니다 ....". –
@CraigSquire 다행스럽게도 angular는 함수 'scope. $ eval'을 사용합니다. –