HTML入力コントロールのセットがtestVarにバインドされていますtype = "number"の入力がそのバウンド値の更新を表示しないのはなぜですか?
<div ng-app>
<div ng-controller="TestCtrl">
<input type="text" ng-model="testVar">
<input type="number" min="1" max="10" ng-model="testVar">
<input type="range" min="1" max="10" ng-model="testVar">
<button ng-click="testVar = 5">set to 5</button>
</div>
</div>
最初はすべて「=期待通りの入力コントロールがこの値を示すが、testVarはタイプによって変更されたときにタイプ=「数」の入力が空白になります「範囲」またはタイプ=「テキスト」入力。プログラムでtestVarの値を設定すると、予想される動作になります。すべての入力が更新された値を示します。 http://jsfiddle.net/7cbYp/
ですが、なぜでしょう、そしてそれがどのように固定することができます。
問題は、この単純なケースで実証されていますか?私はそれをテストしている
var App = angular.module('App', []);
App.directive('fix', function(){
return{
link: function(scope, elem, attrs){
scope.$watch(attrs.fix, function(v){
if(typeof v === 'string') v = parseInt(v, 10);
elem.val(v);
});
elem.bind('change', function(){
scope[attrs.fix] = elem.val();
scope.$digest();
});
}
};
});
問題は、入力[タイプ=数]は確かにそれは「NG-無効-番号」クラスを取得し、文字列値を受け付けないようです。私はこれがバグだと思う。ボタンをこのボタンに変更すると、testVar = '5' ">に設定されます。同じエラーが表示されます。 –
あなたはどのブラウザをテストしていますか? – Spudley
私はchromium21、opera12、IE9を使用しています(範囲入力はありませんが、数字は空です) –