Javascript 继承外部控制器';ng的范围是否包括不提供服务?
在AngularJS中,是否可以从包含的部分中继承父控制器的作用域,而不是通过注入的服务传递数据 示例案例: 让我们假设Javascript 继承外部控制器';ng的范围是否包括不提供服务?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,在AngularJS中,是否可以从包含的部分中继承父控制器的作用域,而不是通过注入的服务传递数据 示例案例: 让我们假设ParentCtrl的作用域看起来像:{testData:'testingstuff'} <div ng-controller="ParentCtrl"> Here we're defined: {{testData}} <div ng-include="'partial.html'"></div> </div>
ParentCtrl
的作用域看起来像:{testData:'testingstuff'}
<div ng-controller="ParentCtrl">
Here we're defined: {{testData}}
<div ng-include="'partial.html'"></div>
</div>
所以这个部分甚至不需要它自己的控制器。如果这是不可能的,并且您只能通过服务在控制器之间传递注入的数据,那么Angular为什么会这样做呢?在中使用示例Plunkr,我可以从部分中访问父控制器的作用域。例如,将
template1.html
的内容更改为:
Content of template1.html {{ template }}
根据文档,
ngInclude
创建了一个新的范围,这意味着您需要遵守“范围内有一个点”(访问范围上的对象而不是原始值)的最佳实践,以避免断开引用的问题。您可以查看更多信息。是的,默认情况下它就是这样工作的ng include
始终创建一个新范围,并:
“子范围”(原型)从其父范围继承属性
范围
就是一个例子
编辑:另外,我刚刚注意到你原来的问题中有一个语法问题。模板应该用单引号括起来。将
更改为
Content of template1.html {{ template }}