当一个控制器在另一个控制器内时如何访问变量?
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>
你能告诉我当一个控制器在另一个控制器中时如何访问变量吗..实际上你能告诉我子控制器能否访问超级控制器的变量之上。
举个例子:
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>