0
私は既存の角度ファクトリを持っていますが、私の角度コントローラに$リソースの結果を渡す必要があるいくつかの新しいコードを挿入する際に問題があります。私は以下の "sendFilesToController()"関数でこれをしようとしています。私は構文がわからない。どんな助けもありがとうございます。工場から角度コントローラにデータを渡します
おかげで、
ピート
私の工場はこのようになります:
(function() {
'use strict';
angular
.module('ooApp.controllers')
.factory('fileManager', fileManager);
fileManager.$inject = ['$q', 'fileManagerClient', 'appInfo', 'sharedPropertiesSvc', 'FileSvc', '$location', 'growl', ];
function fileManager($q, fileManagerClient, appInfo, sharedPropertiesSvc, FileSvc, $location, growl) {
var service = {
files: [],
load: load,
upload: upload,
remove: remove,
fileExists: fileExists,
pass: pass,
status: {
uploading: false
}
};
return service;
function load() {
appInfo.setInfo({ busy: true, message: "loading files" })
service.files.length = 0;
return fileManagerClient.query()
.$promise
.then(function (result) {
result.files
.forEach(function (file) {
service.files.push(file);
});
appInfo.setInfo({ message: "files loaded successfully" });
return result.$promise;
},
function (result) {
appInfo.setInfo({ message: "something went wrong: " + result.data.message });
return $q.reject(result);
})
['finally'](
function() {
appInfo.setInfo({ busy: false });
});
}
function upload(files) {
//ToDo Check that file extension exists here
item.OversightId = oversightId;
FileSvc.update({ Id: oversightId }, item).$promise.then(function (response) {
var x = 5;
sendFilesToController(id);
});
return result.$promise;
},
function (error) {
appInfo.setInfo({ message: "something went wrong: " + error.data.message });
sharedPropertiesSvc.setDuplicateFileSwitch(true);
sharedPropertiesSvc.setDupFileMsg(error.data.error.message);
var url = '/oa/?id=' + oversightId;
$location.url(url);
return $q.reject(error);
})
['finally'](
function() {
appInfo.setInfo({ busy: false });
service.status.uploading = false;
});
}
function sendFilesToController(id) {
//appInfo.setInfo({ busy: true, message: "deleting file " + file.ImageName });
return {
sendFiles: function() {
//return FileSvc.getById({ Id: oversightId }).$promise.then(function (response) {
//});
var files = {};
FileSvc.getById({ Id: id }).success(function (response) {
angular.copy(response, files);
});
return files;
}
}
}
}
})();
、私のコントローラで私はこれを持って
:あなたは誤解$scope.files = fileManagerClient.sendFiles(response);
をしたいコントローラへのあなたのヨセフをありがとうございます。私はあなたが言っていることを理解しています。しかし、私はすでに存在する特定のコードでそれを行う方法がわかりません。 – Pete
ちょうど工場を注入し、サービスを使用すると、工場はあなたのための共通のlibだと思うことができます –
私がここで本当にしたいのは、工場で$ scope.item.Filesに返されたファイルをバインドすることです。 – Pete