我知道这个问题在 SO 上被问过多次,但我找不到任何答案
我有一个负责文件上传的指令。
这是我的指令代码:
var directive = {
restrict: 'AE',
scope: {
settings: '='
},
controller: 'fileUploaderCtrl',
replace: true,
template: '<div class="fileTransferContainer uploadContainer" ng-file-drop="onFileSelect($files)" ng-file-drag-over-class="dropBox">\
<fieldset>\
<legend>Uploads in progress</legend>\
<div ng-repeat="file in selectedFiles" class="fileTransfer">\
<span class="up_fileSize"> {{file.size / 1024 | number:2}}KB</span>\
<span>{{file.sizeUploaded()}}</span>\
<div class="progressContainer">\
<div class="up_actions">\
<span>\
<button>\
<a ng-click="remove($index)" class="small_icon white_delete"></a>\
</button>\
</span>\
</div>\
</div>\
</div>\
</fieldset>\
</div>'
}
[...]
在我的 Controller 中,我有以下代码:
$scope.remove = function (index) {
debugger;
$scope.selectedFiles.splice(index, 1);
$scope.sendUpdatedModel();
}
我尝试过的:
就我的 ng-click 在 ng-repeat 内部而言,我想知道它是否与范围继承无关。我试过这个,结果相同(在 chrome 中工作但在 firefox 中不工作)
ng-click="$parent.remove($index)"
我也以这种方式修改了 Controller 功能:
function remove(index) {
$scope.selectedFiles.splice(index, 1);
$scope.sendUpdatedModel();
}
$scope.remove = remove;
它也适用于 chrome,但不适用于 firefox
请注意,我在控制台中没有任何错误。在这一点上,我不知道我可以检查/做什么来理解这个错误
最佳答案
看来<a>
不是很好在 <button>
里面.
我把答案放在这里,我们永远不知道是否有人会像我一样犯错误 ;-)
<button ng-click="remove($index)" >\
<a class="small_icon white_delete"></a>\
</button>\
关于javascript - ng-click 在 firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28153317/