2013-03-09 61 views
12

我有一個輸入類型數設置爲angularJS NG-模型輸入型編號,以rootScope不更新

<input type="number" ng-model="inputModel"/> 

哪裏inputModel$rootScope.inputModel。每次更改輸入框時,該值都不會保留在$rootScope上。是不是可以將輸入框綁定到$rootScope?我在這裏錯過了什麼?
我基本上有另一個控制器在給定$rootScope上執行計算,這些計算根據輸入框的值而改變。
的幫助深表感謝

感謝

+2

您的問題與原型繼承。這個問題在Stack Overflow上出現很多。查看[this](https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope-Prototypal-Inheritance)來解釋這裏有什麼問題。 – 2013-03-09 01:03:50

+2

@JoshDavidMiller說了這一切。請檢查此[小提琴](http://jsfiddle.net/bmleite/UXsLj/)。這可能有助於... – bmleite 2013-03-09 01:11:35

+1

理想情況下,您不應該在$ rootScope上存儲任何內容。應該使用服務在控制器之間進行通信。檢查[此視頻](http://www.youtube.com/watch?v=HXpHV5gWgyk) – Dogoku 2013-03-09 01:11:41

回答

18

正如其他人指出的那樣,這是一個典型的繼承問題。您的輸入模型在當前範圍內生成,而不是在rootScope中生成。

始終使用「。」在你的意見。這將工作:

rootScope.fields = { 
    inputModel: '' 
} 

<input type="number" ng-model="fields.inputModel"/> 
23

this question - 您可以使用示波器上的$root屬性和結合將是

<input type="number" ng-model="$root.inputModel"/> 

這將直接綁定根而無需在控制器中明確指定它。

+0

謝謝。它節省了我很多時間。 – 2018-02-28 15:45:33

相關問題