我想使用 $watch 以便在每次更改这 3 个值之一时触发一个函数:
html:
<input type="hidden" name="source_x" id="source_x" ng-model="source_x"/>
<input type="hidden" name="source_y" id="source_y" ng-model="source_y"/>
<input type="hidden" name="id" id="id" ng-model="id"/>
我刚开始有角度,我想使用 $watch 来触发一个功能。每次我使用以下可拖动功能拖动一个 div 时,这些值都会更改:
$("#div").draggable({
helper : 'clone',
stop:function(event,ui) {
var wrapper = $("#container-emote").offset();
var borderLeft = parseInt($("#container-emote").css("border-left-width"),10);
var borderTop = parseInt($("#container-emote").css("border-top-width"),10);
var pos = ui.helper.offset();
$("#source_x").val(pos.left - wrapper.left - borderLeft);
$("#source_y").val(-(pos.top - wrapper.top - borderTop)+185);
$("#id").val(2);
}
});
我从这个开始,但我认为这是不对的,因为如果我移动一个 div 我将调用该函数的 3 次?此外,我不知道是否可以在隐藏输入的情况下使用它。谢谢!
//Fonction
$scope.$watch($scope.source_x, createEmote);
$scope.$watch($scope.source_y, createEmote);
$scope.$watch($scope.id, createEmote);
function createEmote(newValue, oldValue, scope){
}
更新:回答小提琴我只是在拖动结束时添加一个函数