gpt4 book ai didi

javascript - 当模型在范围内更新时,$watch 不起作用。指令中的 $apply

转载 作者:行者123 更新时间:2023-12-03 13:44:42 24 4
gpt4 key购买 nike

我有一个指令,我在指令范围的“现有文件”模型上添加了一个监视。当模型通过 scope.$apply 发生变化时,watch 中不会调用 listener。

这是指令代码,如果我在这里遗漏了什么,请告诉我,

   directive('fileuploadPlugin', function() {
var linkFn;
linkFn = function(scope, element, attrs) {
angular.element(element).ready(function() {
jQuery('#fileupload').fileupload({
done: function (e, data) {
scope.$apply(function(scope) {
for(var i=0; i < data.result.filesuploaded.length; i++){
scope.existingfiles.push(data.result.filesuploaded[i]);
};
});
}
});
scope.$watch('existingfiles', function(newValue, oldValue) {
element.imagesLoaded(function() {
scope.$apply( function() {
element.masonry({
itemSelector : '.box'
});
});
});
});
};
return {
templateUrl : 'templates/fileupload_plugin.htm',
restrict : 'A',
scope : {
existingfiles : '=ngModel',
},
link : linkFn
};
})

这是我对指令的调用,
<div fileupload-plugin ng-model="existingfiles"></div>

请让我知道如何确保正确观看该模型

最佳答案

通过将“true”作为 $watch 调用的第三个参数,问题已得到解决。
请在此处找到有关第三个参数的更多信息,

Angular Docs on $rootScope

关于javascript - 当模型在范围内更新时,$watch 不起作用。指令中的 $apply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com