问题:
遇到我试图在文本字段上使用ng-change
的问题。障碍是我正在使用滑块来更改此文本字段的值。
当我点击文本字段并开始输入时,ng-change事件有效:logOutValue()
会在我的浏览器中触发并注销。
HTML:
我正在使用此Angular range slider - > (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);
答案 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
事件来获得有关模型更改的通知。