gpt4 book ai didi

javascript - Angularjs 获取范围属性而不在自定义指令中使用隔离范围

转载 作者:行者123 更新时间:2023-11-28 07:43:37 25 4
gpt4 key购买 nike

所以我根据我的项目做了一个小实验

我创建了 2 个指令,一个使用隔离范围,另一个则没有..

问题是:

  1. 有没有一种方法可以在不使用隔离范围的情况下获取范围属性?因为在我的项目中,我没有自定义的独立范围指令环境,而且我还需要访问父作用域

  2. 我可以使用 angular.element('#' +scope.id) 操作 dom 吗?如果没有,有办法做到这一点吗?

这是未隔离的自定义指令

<test-directive item="item" content="item.context"></test-directive>

这是js代码

app.directive('testDirective', function() {
return {
restrict: "EA",
scope: false,
template:"<div>test directive</div>",
link: function(scope, elm, attr) {
console.log(attr.item); //I want it like the result gives in line 39
console.log(attr.id); //I want it like the result gives in line 41
console.log(attr.content); //I want it like the result gives in line 43
console.log(scope.name);
}
}
});

这是孤立的

<isolated-directive id=item.id item="item" content="item.context"></isolated-directive>

这是js代码

app.directive('isolatedDirective', function() {
return {
restrict: "EA",
scope:{
item:'=item',
id:'=id',
content:'=content',
},
template:"<div>isolated directive</div>",
link:function(scope,elm,attr) {
console.log(scope.item.id);
console.log(scope.id);
console.log(scope.content);
console.log(scope.name); //I want it like the result gives in line 27
}
}
});

这是工作plunkr

有人愿意帮忙吗?

最佳答案

您可以使用scope: true,并且范围将典型地从其插入的位置继承。但是,如果您需要的只是访问父作用域,则始终可以使用 $parent,即使在隔离作用域中也是如此。不推荐,但有可能。

关于javascript - Angularjs 获取范围属性而不在自定义指令中使用隔离范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27704328/

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