如果ng-transclude的作用域具有隔离范围,为什么它的作用域不是其指令的作用域的子级?
ng-transclude设计为允许指令使用任意内容,而隔离范围设计为允许指令封装其数据。
如果
ng-transclude没有保留这样的范围,那么您要包含的任何任意内容都需要知道指令的实现细节(即,它需要知道在您创建的隔离范围中可以使用的内容)。
如果不是错误,那么容器指令如何将数据传递给它的内容,如果不像我尝试的那样设置属性的话。
如果容器指令和包含指令是耦合的(即您同时编写了这两个指令,并且需要它们共同起作用),则它们应该通过共享控制器进行通信。
如果应该使用容器指令将内容注入子级作用域(例如ng-repeat),则不应使用隔离的作用域。
有角度的文档很清楚该行为应该是什么:
“在典型的设置中,小部件会创建一个隔离范围,但是包含的内容不是孩子,而是隔离范围的同级。这使得小部件可以具有私有状态,并且可以将包含项绑定到父级(预先隔离)范围。”



