当一个控制器在另一个控制器内时如何访问变量?

how to access variable when one controller is inside another?

你能告诉我当一个控制器在另一个控制器中时如何访问变量吗..实际上你能告诉我子控制器能否访问超级控制器的变量之上。

举个例子:

http://plnkr.co/edit/sKG9nN67P9McXYGXXIzZ?p=preview

<div ng-app="app">
    <div ng-controller="firstCont">
        <div ng-controller="secondCont">
            <input type="text" ng-model="message">
            <h1>{{message}}</h1
        </div>
        <input type="text" ng-model="data">
        <h1>{{data}}</h1> 
    </div>
</div>

第二个控制器在第一个控制器里面。当我更改输入字段时,它反映在 header.

但是如果我对我的代码做一些更改。尝试在子控制器中访问上面的控制器变量,我们可以这样做吗?但做不到?它将如何实现

<div ng-app="app">
    <div ng-controller="firstCont">
    <input type="text" ng-model="data">
    <h1>{{data}}</h1>
    <div ng-controller="secondCont">
        <input type="text" ng-model="message">
        <h1>{{data}}</h1
    </div>
</div>

你能告诉我访问修饰符规则吗?

编辑

<div ng-app="app">
   <div ng-controller="firstCont">
   <input type="text" ng-model="data.data">
   <h1>{{data.message}}</h1>

   <div ng-controller="secondCont">
    <input type="text" ng-model="data.message">
   <h1>{{data.data}}</h1
     </div>

   </div>


   </div>

如果您的变量是字符串,则子控制器将创建该变量的新实例,而不查看父范围。如果您将变量设为对象,则子控制器将向父控制器查找值。所以在你的父控制器中创建一个 data 变量并给它一个 data.message 属性。然后在子控制器中,您可以使用 ng-scope="data.message.

访问它

查看此 link 了解更多信息:https://github.com/angular/angular.js/wiki/Understanding-Scopes#ngRepeat

这是您编辑的代码:

<div ng-app="app">
    <div ng-controller="firstCont">
        <input type="text" ng-model="data.data">
        <h1>{{data.data}}</h1>
        <div ng-controller="secondCont">
            <input type="text" ng-model="data.message">
            <h1>{{data.data}}</h1>
        </div>
    </div>
</div>