2016-10-26 8 views
0

フィルターと混同しました。テキスト入力を数値に変換するにはどうすればよいですか?

我々は{{ num | number }}

は、我々がこのように使用できない理由として、フィルタ属性を使用することができますか?

<input type="text" name="name" ng-model="num" /> 
<input type="number" name="name" ng-model="num | number" /> 

私のアプローチが間違っている場合。どのように変換することができますテキストタイプ入力番号

+0

フィルタはレンダリング用であり、データを変更するものではありません。 – Mistalis

+0

@venkatフィルタはng-repeatで使用でき、ng-modelでは使用できません –

+0

"**テキストタイプ入力を数字に変換**"とはどういう意味ですか?入力? – Mistalis

答えて

0

ng-modelは双方向バインディングで、フィルタは出力のみを許可するので、filterは使用できません。したがって、filterを使用すると、ng-modelは新しい値をバインドできないため、コントローラでフィルタを呼び出す必要があります。 exのテキスト値が変更されたとき。

<input type="text" name="name" ng-model="num" /> 
<input type="number" name="name" ng-model="numFormatted" /> 

がNG-モデルを考えるの下のようなものは、両方の入力のために異なっており、num個のモデルが変更されるたびnumFormattedは

function yourController($scope,$filter) 
{ 
    $scope.$watch('num', function(newValue) { 
    $scope.numFormatted = $filter('number')(newValue); // here we convert changed value of num to number using filter 
    }); 

    $scope.num = "1"; 
} 

ので、今お使いのコントローラにフィルタ

とコントローラで操作されます入力タイプ= "テキスト"を使用すると、数値に変換されてnumFormattedに割り当てられるので、type = "数値"が更新されます。

関連する問題