我正在嘗試構建一個工廠,作爲我的數據庫模型的暫存區域,以及執行基本CRUD調用的api。我希望能夠通過將數據存儲在服務或工廠中來訪問數據,並保留api方法,以便我可以在控制器中執行類似這些操作。
$scope.folders = Folders.data(); // for a factory
$scope.folders = Folders.data; // for a Service
Folders.create({name: "My Stuff, $oid: { 5fwewe033333 }, user_id: CurrentUser.id"});
目前我在控制器中使用這樣的文件夾工廠。
Folders.foldersData().success(function(data, status) {
$scope.folder = data;
})
.error(function(data,status) {
Flash.warning("There was a problem fetching your data");
});
我知道我可以在控制器解決的承諾,但我的工作項目的大小,我喜歡在服務訪問文件夾模式的想法,與具有出每次進行更改時都會進行服務器調用以同步數據。
angular.module('cmsApp')
.factory('Folders', function($http, $q){
var folders = {};
var messageWarn = "Upload Retrival Failed.";
return {
get: function(){
var defered = $q.defer();
$http.get('/folders').success(function (data, status) {
defered.resolve(data);
})
.error(function (data, status) {
defered.reject();
Flash.warning(message_warn);
});
defered.promise.then(function (promise)
folders = promise;
});
},
data: function(){
return folders;
},
}
});
我的問題是,我不能讓文件夾對象要堅持我打電話Folders.get後()。在我將Folders.data()作爲空對象調用後,它總是返回。
有沒有辦法將這些數據保存在工廠中作爲不依賴於每次點擊服務器的文件夾模型的最新表示?
在Rails 4 API上運行angular 1.2.3。
是的,我會舉一個例子。我認爲你感到困惑的主要原因是工廠創建了一個服務,然後就完成了。可以說,你不能訪問工廠。只有服務。 – m59