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

angularjs – 如果最高优先级指令没有,则Element不会获得隔离范

发布时间:2020-12-17 16:59:00 所属栏目:安全 来源:网络整理
导读:如果最高优先级指令没有隔离范围且优先级较低的指令具有两个指令,则角度不会为具有两个指令的元素创建隔离范围是否正确? 我有以下plunker有2个指令和一个控制器: http://plnkr.co/edit/zEnMH6h0ILURHSgx0DLX?p=preview 如果打开控制台,则可以看到指令和控
如果最高优先级指令没有隔离范围且优先级较低的指令具有两个指令,则角度不会为具有两个指令的元素创建隔离范围是否正确?

我有以下plunker有2个指令和一个控制器:

http://plnkr.co/edit/zEnMH6h0ILURHSgx0DLX?p=preview

如果打开控制台,则可以看到指令和控制器范围的日志. noIsoScope指令没有隔离范围,优先级为1. isoScope作用域指令具有隔离范围,但优先级为0.当我独立使用每个指令时,一切都作为例外.当我同时使用它们时,isoScope指令显示它使用控制器作用域(因为基于日志,它具有相同的$id)而不是它自己的.

我是否必须确保每当我在元素上使用多个指令时,如果其中一个具有隔离范围,那么它必须具有最高优先级?

解决方法

简短回答是的.

让2个指令同时需要隔离范围和父范围是没有意义的.我们的想法是考虑指令如何相互协作.如果父范围指令具有隔离范围,那么它将如何正常工作?

我想有角度的团队决定不在这种情况下发出警告(可能是一个错误).

>如果较低优先级需要隔离范围,则意味着它对父范围的数据有严格要求
>如果较高优先级不需要范围,则意味着它将继承父范围并可能在模板中使用该数据.

这是一个捕获22的情况:
non isolate指令使用隔离范围是没有意义的,因为它可能取决于它不是孤立的事实.
同时,隔离指令很可能取决于它是孤立的事实.

从Igor Minar开始,他正在讨论多个隔离范围,但基本上是同一个问题:

My suggestion is to use isolate scopes when you are creating reusable components that are backed by a template. If you want to compose multiple directives together,you should design them in a way that make one directive the main one (with the template) and the other directives are just helper directives (sort of like traits or mixins in some programming languages).

(编辑:李大同)

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

    推荐文章
      热点阅读