2013-04-02 98 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