加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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会自动更新传递给控制器??范围的指令的变量。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读