【发布时间】:2015-02-26 09:32:20
【问题描述】:
我遵循 John Papa 制定的约定,但不幸的是,我并没有真正弄清楚如何使用 ui-router、ControllerAs 和 vm 变量而不是 $scope 将值从子控制器绑定到父控制器。
我做了两个例子,第一个例子说明了工作环境,所以没有 ControllerAs 和正常的 $scope 变量,这是可行的,但是当我将 $scope 更改为
var vm = this;
它不会处理对子控制器对父控制器所做的任何更改。我真的想让它在不使用某种 PUBSUB 模式的情况下工作,因为这是使用双向数据绑定最重要的特性之一,但我不知道在这种情况下这是否可能?
我创建了两个 Plunker 示例来说明问题:
Plunker 示例 1:
- 控制器 + $scope
- http://embed.plnkr.co/oNsCF2YnfKP3wzGNhFUi/preview
Plunker 示例 2:
- 使用 vm 变量和 ControllerAs 语法
- http://embed.plnkr.co/s68o08dtBafHKflD8ZLZ/preview
第一个示例有效,当更改模板“register-identification.html”中的某些输入字段时,这将直接更改父控制器 (RegisterBaseController) 中的 {{formData}}。
第二个示例不处理任何更改。
我希望我的解释有意义吗?希望有人可以帮助我!
非常感谢!
肯
【问题讨论】:
-
创建 jsfiddle 或 plunker 来显示您的问题。
-
添加了 Plunker 示例...
标签: angularjs angularjs-scope angular-ui-router