gpt4 book ai didi

javascript - 将范围名称更新为指令

转载 作者:行者123 更新时间:2023-11-30 17:51:09 25 4
gpt4 key购买 nike

我有一个指令,它的属性包含一个范围名称,当指令中设置了某些内容时我想更新它。

<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>

上面的想法是传入任何作用域变量名,并在完成后从指令更新它,这意味着父 Controller 应该可以访问新分配。

最佳答案

您需要为点符号模型使用 $parse 服务。你的指令中有这样的东西

var getter = $parse(parseattrs.scopeVarToUpdate);
var setter = getter.assign;
getter(scope); //get value
setter(scope,'value'); //set value

请在此处查看文档 http://docs.angularjs.org/api/ng .$解析

关于javascript - 将范围名称更新为指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19009238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com