AngularJS指令隔离作用域不工作

AngularJS指令隔离作用域不工作,angularjs,Angularjs,我指的是AngularJS的研究材料,并试图实现“具有隔离范围的指令”,但它不起作用。请找到下面给定的代码片段,我已经完成了 HTML: 角JS: <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script> 预期产出: Surrounding scope: wow, this is cool Inside an directive with inheri

我指的是AngularJS的研究材料,并试图实现“具有隔离范围的指令”,但它不起作用。请找到下面给定的代码片段,我已经完成了

HTML:

角JS:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script>
预期产出:

Surrounding scope: wow, this is cool
Inside an directive with inherited scope: wow, this is cool
Inside myDirective, isolate scope:
不同之处在于最后一行输出

我同意,在这个问题上已经出现了几个标题类似的问题。我经历过这些,相信我,没有人能回答我的疑问。所以,我想问一个针对我要求的问题

根据文档注释,(针对指令的
范围
属性)

{…}
(对象哈希):
为指令的模板创建一个新的“隔离”作用域。“隔离”作用域与普通作用域的不同之处在于它不典型地从其父作用域继承。这在创建可重用组件时非常有用,这些组件不应意外读取或修改父范围中的数据请注意,没有
模板
模板URL
的隔离作用域指令将不会将隔离作用域应用于其子元素。

这里没有
template
/
templateUrl
,所以它是这样工作的

这是


编辑:下面是一个解释为什么部分的示例

评论

事实上,依赖HTML中的组件指令的内部结构听起来不是一个好的做法(即,子DOM元素在其父元素上假设了指令的某些内容)——如果内容是特定于组件的,则它们位于组件的模板中

在这方面,这听起来确实合理


编辑2:这是作为
Angular@1.2.0及时交付(2013-11-08)
因此它在之前的版本中仍然有效

根据:(v1.2.0中断更改)

$compile

  • 由于,在应用程序模板或其他一些指令模板中定义的子元素不会获得隔离范围。理论上,任何人都不应该依赖这种行为,因为这种行为非常罕见——在大多数情况下,隔离指令都有一个模板

谢谢你的回答,它确实显示了你在回答这个问题上的研究和努力。但是,还有一件事我想不通&我想让你经历一次。请参考:@GGArora基本上你使用的是Angular
1.2.0-rc.3
,这是在
1.2.0
之前引入这些更改的地方:)更新了答案。@GGArora你明白了吗?我想,没关系。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.js"></script>
Surrounding scope: wow, this is cool
Inside an directive with inherited scope: wow, this is cool
Inside myDirective, isolate scope: wow, this is cool
Surrounding scope: wow, this is cool
Inside an directive with inherited scope: wow, this is cool
Inside myDirective, isolate scope: