4

在最新的稳定版 Chrome 中运行最新的稳定版 Angular。我在带有 ng 控制器 A 的视图内的 DOM 元素上进行了 ng-click,但 DOM 元素本身有一个 ng-controller 设置为另一个控制器 B. ng-click 在控制器 B 内触发,但是会更改范围属性, ng-model 属性绑定到哪个 DOM 元素,不会被反映。

具体来说,我有一个 textarea,以及其他 HTML5 输入类型。没有错误,当我在调试器中中断时,我可以查看范围变量并看到 $scope 实际上指向控制器 B。

Plnkr 示例在这里,请注意它如何只更新同一 DIV 内的输入?:http ://plnkr.co/edit/DmccNj?p=preview

4

1 回答 1

7

我最近遇到了同样的问题。显然,当您创建两个具有相同的 HTML 片段时ng-controller,它会创建两个单独的控制器实例。因此,在实例 1 中点击“编辑”按钮集$scope.comment,但输入字段绑定到控制器的实例 2。

如果你必须这样做,你最好创建一个角度服务,因为它们是单例的。

这是我的问题:为一个控制器拆分 HTML 组件会导致控制器停止工作

此外,Angular Batarang是一个非常酷的 Chrome 扩展,来自 AngularJS 团队,用于调试 Angular 应用程序。我之所以提到这一点,是因为如果您(或我)使用过它,我们会立即看到出了什么问题。

于 2013-04-03T00:26:06.003 回答