2013-04-02 57 views
3

在最新的稳定版Chrome中运行最新的稳定版Angular。我用ng控制器A单击一个位于视图内部的DOM元素,但是DOM元素本身的ng控制器设置为另一个控制器B.在控制器B中点击ng点击,但是范围变化不会反映DOM元素通过其ng-model属性绑定的属性。模型更改时未更新角度视图(DOM元素)

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

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

+2

你可以发布一个Plunker或至少一些代码? –

+0

乔希,现在正在工作。 – brushleaf

+0

由于在范围中使用原语,最有可能是范围继承问题....阅读此内容并尝试使用“点”建议https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope - 原型 - 继承 – charlietfl

回答

6

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

如果您必须这样做,您最好创建一个角度服务,因为它们是单身人士。

这里是我的问题:Splitting HTML components for one controller causes controller to stop working

此外,Angular Batarang从AngularJS团队一个非常酷的浏览器扩展程序来调试应用角度。我提到这个,因为如果你(或者我)已经使用过了,我们会马上看到出了什么问题。

+0

你是那么对。谢谢。服务越有意义,我越想到它。 – brushleaf

+0

xbones或任何其他人,不知道这是否值得一个新的问题,但当设置一个? – brushleaf

+0

@brushleaf:查看http://stackoverflow.com/questions/14817728/need-example-of-select-usage-in-angularjs-input-form – xbonez