AngularJS:当使用Slider更改值时,如何收听<input ng-change =“”/>?

时间:2014-04-09 18:40:26

标签: javascript angularjs angularjs-ng-repeat

问题:
遇到我试图在文本字段上使用ng-change的问题。障碍是我正在使用滑块来更改此文本字段的值。

当我点击文本字段并开始输入时,ng-change事件有效:logOutValue()会在我的浏览器中触发并注销。


HTML:

我正在使用此Angular range slider   - &GT; (Example)

<div ng-repeat='obj in testObjects'> <rzslider rz-slider-model="obj.max"> <form> <input value='{{ obj.max }}' ng-change='logOutValue(obj)' ng-model="testObjects[obj.name]"> </form> </div>

滑块通过obj.max填充文本输入的值。这有效。同样,当单击文本字段并键入时,该值将被注销。


在控制器中:

testObjects = {}; $scope.logOutValue = function(obj){ console.dir(obj); };

其他想法
我尝试使用$ watch,但是当点击文本框并输入时,它似乎也只会触发。

$scope.$watch('testObj', function(){ console.log('this is working?'); }, true);

2 个答案:

答案 0 :(得分:0)

如果你想抓住绑定的模型中的更改以在外部更改事件..我们唯一的选择就是使用$ watch ..

这里看起来你已经将$ watch添加到错误的变量中作为&#34; testObj&#34;未绑定为输入字段的模型。

请参阅视频,了解ng-change和$ watch

之间的区别
https://egghead.io/lessons/angularjs-using-the-ngchange-directive-in-angular

答案 1 :(得分:0)

您可以使用here所述的slideEnded事件来获得有关模型更改的通知。