我有一个指令,它的属性包含一个范围名称,当指令中设置了某些内容时,我想更新它。
<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.ab?
<div data-my-directive data-scope-var-to-update="a.b"></div>
上面的想法是传入任何范围变量名称,并在指令完成后从指令中更新它,这意味着父控制器应该可以访问新的赋值。