Angularjs 多个文件上传指令和一个提交按钮
我有多个类别的文件上传和HTML给我有这些不同的类别,每个有一个文件上传控制多个文件。所有这些部分(以及每个部分的文件上载)都显示在一个HTML中。我创建了一个文件上传指令,并将其用于每个上传部分。这项工作可以处理一个名为“上传”点击事件的按钮,该按钮是指令的一部分Angularjs 多个文件上传指令和一个提交按钮,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有多个类别的文件上传和HTML给我有这些不同的类别,每个有一个文件上传控制多个文件。所有这些部分(以及每个部分的文件上载)都显示在一个HTML中。我创建了一个文件上传指令,并将其用于每个上传部分。这项工作可以处理一个名为“上传”点击事件的按钮,该按钮是指令的一部分 现在,有一个叫做“上传所有”的按钮,点击它我必须一次更新所有属于不同部分的文件。所以我必须在点击这个按钮时上传所有指令中的文件。我如何拥有此功能。我不确定是否有更好的方法来实现此功能,但您可以尝试: 将一个值从控制器传递给所有指令,
现在,有一个叫做“上传所有”的按钮,点击它我必须一次更新所有属于不同部分的文件。所以我必须在点击这个按钮时上传所有指令中的文件。我如何拥有此功能。我不确定是否有更好的方法来实现此功能,但您可以尝试: 将一个值从控制器传递给所有指令,然后在每个指令上附加一个
$watch
。然后单击Upload All按钮将更改该值,从而触发运行所有指令
控制器:
app.controller = function('Ctrl', function($scope) {
$scope.uploadAllFlag = false;
$scope.uploadAll = function() {
$scope.uploadAllFlag = !$scope.uploadAllFlag;
}
});
指令:
app.directive = function('directive', function() {
return {
scope: { flag: '=' }
link: function(scope) {
scope.$watch('flag', function(){
//do your upload stuff
}
}
});
或者,在控制器上注入$rootScope并广播一个可以通过指令捕获的事件:
app.controller = function('Ctrl', function($rootScope, $scope) {
$scope.uploadAll = function(){
$rootScope.$broadcast('uploadAll');
};
});
app.directive = function('directive', function(){
link: function(scope) {
scope.$on('uploadAll', function(){
//do something
}
}
});
我创建了一个简单的JSFIDLE。主要思想包括:
[1]http://jsfiddle.net/VpmV2/45/