【发布时间】:2014-05-02 04:01:19
【问题描述】:
我正在尝试创建一个指令来监视被拖到元素上的文件。 我的问题是我似乎无法在 scope.files 上触发监视 我也尝试过创建一个隔离范围:
scope:{files:'='}
然后做
scope.$watch('files',function(){})
里面有link函数,但是没有运气。
如何让这款手表接收正在更新的文件?
我添加了“scope.files = []”,因为在设置手表时它最初为空。
angular.module('myApp').directive('dragDrop', [function () {
return {
link: function (scope, element, attrs) {
scope.files = [];
scope.$watch(scope.files, function () {
if (scope.files !== undefined && scope.files.length === 1) alert("a file has been dropped");
});
element.on('dragenter', function (e) {
e.stopPropagation();
e.preventDefault();
$(this).css('border', '2px solid #0B85A1');
});
element.on('dragover', function (e) {
e.stopPropagation();
e.preventDefault();
});
element.on('drop', function (e) {
$(this).css('border', '0px');
e.preventDefault();
//var files = e.originalEvent.dataTransfer.files;
scope.files = e.originalEvent.dataTransfer.files;
});
}
};
【问题讨论】:
标签: angularjs scope directive watch