我有一個指令,該屬性包含一個範圍名稱,我希望在指令中設置了某些內容時進行更新。將範圍名稱更新爲指令
<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' –