2014-07-17 18 views
2

As demonstrated in this plunker,我想有一個< INPUT TYPE =「號碼」/> < INPUT TYPE =「範圍」/>其中兩個更新同一$scope變量,以及相互。結合兩個輸入到相同型號

現在,當我更新一個輸入時,$ scope變量被改變,但另一個作用域的值被空白。我只需要將數據綁定到data-ng-model並在另一個數據庫上使用data-ng-change?有更清潔的解決方案嗎?

回答

9

下面是我將引用example。問題是,範圍是一個字符串值,而數字是一個數字值。

實例化一個變量控制器內編寫函數來處理轉換勢必$scope.data

<input type="text" ng-model="data" ng-change="setDataAsNumber()"> 
<br> 
<input type="number" ng-model="data"> 
<br> 
<input type="range" ng-model="data" ng-change="setDataAsNumber()"> 
<br> 
{{ data }} 

我已經解決了這個用NG-改變指令

$scope.data = 10; 

$scope.setDataAsNumber = function() { 
    $scope.data = parseInt($scope.data, 10); 
} 

創建所有的元素。

3

不確定這是爲什麼,但是當您將type =「number」更改爲type =「text」時,它可以正常工作。

我發現這個解決方法輸入類型=「數字」,但似乎有點哈克:

$scope.$watch('MyNumber',function(number) { 
    $scope.MyNumber = Number(number); 
}); 
+0

聽起來像一個角度的錯誤。我想我不需要spinners,因爲我已經得到了範圍。 –

+0

是的,我也在想。它應該沒有上述$ watch解決方法。有趣的發現。 – Rob

+1

我認爲它的問題與type =「number」本身,因爲它期望的數字,但當我們使用範圍類型它返回字符串。爲什麼範圍類型工作正常與文本框 – Akhlesh

相關問題