angularjs – 如何在角度指令中设置内插值?
发布时间:2020-12-17 08:10:28 所属栏目:安全 来源:网络整理
导读:如何在指令中设置内插值?我可以从以下代码读取正确的值,但是我无法设置它。 JS: app.directive('ngMyDirective',function () { return function(scope,element,attrs) { console.log(scope.$eval(attrs.ngMyDirective)); //set the interpolated attrs.ng
如何在指令中设置内插值?我可以从以下代码读取正确的值,但是我无法设置它。
JS: app.directive('ngMyDirective',function () { return function(scope,element,attrs) { console.log(scope.$eval(attrs.ngMyDirective)); //set the interpolated attrs.ngMyDirective value somehow!!! } }); HTML: <div ng-my-directive="myscopevalue"></div> 其中myscopevalue是我控制器范围的一个值。
如果要在范围上设置值,但不知道属性的名称(提前),则可以使用object [property]语法:
scope[attrs.myNgDirective] = 'newValue'; 如果属性中的字符串包含一个点(例如myObject.myProperty),则不起作用;你可以使用$ eval来做一个赋值: // like calling "myscopevalue = 'newValue'" scope.$eval(attrs.myNgDirective + " = 'newValue'"); [更新:你应该真的使用$ parse而不是$ eval。见Mark’s answer.] 如果您使用的是隔离范围,则可以使用= annotation: app.directive('ngMyDirective',function () { return { scope: { theValue: '=ngMyDirective' },link: function(scope,attrs) { // will automatically change parent scope value // associated by the variable name given to `attrs.ngMyDirective` scope.theValue = 'newValue'; } } }); 您可以在this Angular/jQuery color picker JSFiddle example中看到一个示例,其中分配给指令中的scope.color会自动更新传递给控制器??范围的指令的变量。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |