angularjs来自另一个控制器的访问值

时间:2013-09-04 18:36:20

标签: angularjs

<div ng-controller="aCtrl">
 <input type="text" ng-model="person" />
 <button type="button" ng-click="Search()">XXX</button>
</div>

<div ng-controller="bCtrl">
 <input type="text" ng-model="car" />
</div>

在onclick事件中Search()如何获得$ scope.car的访问权限?$ scope.car位于另一个控制器内?

1 个答案:

答案 0 :(得分:4)

这是一个简单的解决方案:

<div ng-init='model={ person: "", car: "" }'>
  <div ng-controller="aCtrl">
   <input type="text" ng-model="model.person" />
   <button type="button" ng-click="Search()">XXX</button>
  </div>

  <div ng-controller="bCtrl">
   <input type="text" ng-model="model.car" />
  </div>
</div>

只需在$scope上更高一级,然后在父范围内设置数据即可。请注意,我更新了绑定到输入的值,以引用新model对象的引用属性。通过执行此操作,您可以在该父作用域上引用对象而不是标量,以便该对象的引用可以由子进程进行原型继承范围。如果这没有多大意义,那么tl; dr版本是:

一般来说,您需要确保ng-model指令包含点。

您还可以定义一个角度服务以在两个控制器之间共享数据,但这可能是您需要的技术。