在Angularjs中添加/编辑场景的设计建议
问题描述:
这是我的场景。我有一个addPersonController和editPersonController分别与addPersonView和editPersonView。在两个控制器中,我都在上传Person的图片。我的上传功能使用范围变量/函数来处理控制器内的文件上传。因此,我最终在两个不同的控制器中拥有相同的代码。任何建议如何重用上传功能?我使用的NG-流指令上传在Angularjs中添加/编辑场景的设计建议
$scope.personImageUploaderConfig = {
target : '/personImageUpload',
singleFile:true,
chunkSize : $scope.maxChunkSize,
query: function (flowFile, flowChunk) {
// function will be called for every request
return {
personId: $scope.newPersonIdentifier, source: 'flow_query'
};
}
};
$scope.onUploadCompleted = function() {
//event triggers by ng-flow when upload completes
};
//calls by controller logic supplying personId
$scope.handleUpload = function(personId){
if($scope.personPicture){
$scope.newPersonIdentifier = personId;
$scope.image.flow.upload();
}
};
//event triggers by ng-flow when image selected
$scope.imageSelected= function() {
else {
$scope.getBinrayFromFile($scope.image.flow.files[0].file).then(function (binary) {
$scope.personPicture = binary;
});
}
};
$scope.getBinrayFromFile=function(file){
var deferred = $q.defer();
var r = new FileReader();
r.onloadend = function(e){
var data = e.target.result;
deferred.resolve(data);
};
r.readAsBinaryString(file);
return deferred.promise;
};
答
您可以创建一个指令来处理,用scope: false
使范围的指令是相同的控制器的范围。
使用服务... – 2014-09-03 14:14:23