在没有服务的情况下从ng-include中继承外部控制器的范围?

sar*_*den 8 javascript angularjs angularjs-scope

在AngularJS中,是否可以从包含的部分内部继承父控制器的作用域,而不是通过注入的服务传递数据?

示例案例:

让我们说ParentCtrl范围看起来像:{ testData: 'testing stuff' }

<div ng-controller="ParentCtrl">
    Here we're defined: {{testData}}
    <div ng-include="'partial.html'"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

内部partial.html:

<em>Inherited: {{testData}}</em>
Run Code Online (Sandbox Code Playgroud)

因此,部分甚至不需要它自己的控制器.如果这是不可能的,你只能通过服务在控制器之间传递注入的数据,为什么Angular会这样做?

Noe*_*oel 5

是的,这实际上是默认情况下的工作原理. ng-include总是创建一个新的范围和:

"子范围"(原型)从其父范围继承属性.

请参阅Scope上的文档.

是一个示例的plunker.

编辑:另外,我刚刚注意到原始问题中的语法问题.模板应该用单引号括起来.更改<div ng-include="partial.html"></div><div ng-include="'partial.html'"></div>