我已經看過幾篇關於這方面的文章,但我無法調整它們以適應我想要做的事情。AngularJS在工廠中獲得申請
我有一個GET請求服務器來獲得JSON響應,並像一個魅力。
.controller('ListController', ['$scope', '$http', function($scope, $http){
$http.get('js/data.json').success(function(data){
$scope.elements = data;
});
}])
現在我可以使用ng-repeat在$ scope.elements中的所有元素中打印視圖。
但現在我需要做兩個不同的GET,取決於是否有互聯網,在線檢查,如果沒有,檢查本地數據庫。
我創建了一個工廠一樣如下:
.factory('AttemptFactory', function($http){
var self = this;
this.elements = [];
this.returnFunction = function() {
$http.get('js/data.json').success(function(data){
self.elements = data;
});
}
}
我首先試圖填補this.elements,然後在第一個控制器訪問它與$ scope.newList = = AttemptFactory.elements 。 也嘗試做一個返回self.elements,並與AttemptFactory = AttemptFactory.returnFunction();
我向.controller()添加了AttemptFactory的依賴注入。
我該如何實現它?
if(online) data = Get(from_server);其他 data = Get(from_local_DB);
返回數據;
就是這樣。非常感謝。
太棒了!這就是我想要做的。 我想從請願書中返回'數據',而不是全部的承諾。 我不知道如何在.success()。error()函數中做'返回'。 問題:當你寫data.then()時,你在引用先前的var結果,對吧? 爲了與返回的承諾一起工作。我會馬上測試代碼! =)謝謝! – ButterySAM777
糟糕。我的意思是'result.then()'。我們只是關閉了來自服務器或本地數據庫的數據承諾。還在if語句中進行了更正。在else塊中,LocalDbFactory應該正在進行呼叫。 – Ian
是的,我聚集了!哈哈謝謝你! = d – ButterySAM777