什么时候应该使用继承作用域,什么时候不应该

When should I use inherited scope and when should I not?

本文关键字:什么时候 作用域 不应该 继承      更新时间:2023-09-26

创建指令时,何时应该使用继承作用域(即scope:true),何时不应该使用它(即scope:false)

理解作用域类型之间的区别,并知道每种作用域类型的作用。但是我不明白什么时候我应该选择其中一个而不是另一个。

据我所知,以下是决策标准

  1. 控制器范围数据更改-(单向)->指令范围数据更改:使用继承范围。范围:True
  2. 控制器范围数据更改<->(双向)->指令范围数据更改:使用父范围。作用范围:False
  3. 控制器范围数据变更-(不需要数据变更)-指令范围数据变更:使用新的隔离范围。作用域:{}

假设我们有一个功能如下:{Username}文本框(外部指令)和Hello {Name}(在指令内部,显示在{Username}文本框之后)。

  1. 如果功能就像改变{Username}应该反映{Name},那么使用1.
  2. 如果功能类似于更改{Name}或{Username}将反映反之,则使用2。
  3. 如果{Name}和{Username}之间没有关系,则使用3.

虽然我们可以使用3(隔离作用域)和3种类型的前缀(@=&),我们可以通过它在作用域之间传递数据,这是根据我的知识最好的方法。