2
我已經安裝了AngularJS resource
:AngularJS - 如何處理的承諾正確
app.factory('gridData', function($resource) {
var csrf = 'asdf';
return $resource('/my/url/:expID', {expID:'@id'},{
get: {method:'GET'},
query: {method:'GET', isArray:true},
save:{method:'POST', headers: {'X-CSRFToken' : csrf }}
});
});
我注射gridData
資源爲我的控制器,並用它來從服務器獲取數據:
gridData.query(function(result) {
console.log("result is");
console.log(result);
$scope.data = result;
});
這種方法使用AngularJS 1.3可以正常工作。 console.log(result)
語句顯示收到的實際數據。
現在我試着降級到AngularJS 1.2.11,自console.log(result)
打印出承諾以來,我遇到了問題,如picture所示。因此$scope.data
被設置爲承諾,但實際上我只需要在實際數據可用時設置$ scope.data。
這是因爲在1.3和1.2之間的某些版本中已經引入了Angular。任何想法如何處理這種情況/正確處理承諾?
我在遷移1.2 - > 1.3後面臨同樣的問題。我的方法看起來和你的完全一樣。我無法理解爲什麼它以這種方式工作,並被迫使用這樣的解決方法:delete $ scope.myObj。$ resolved;刪除$ scope.myObj。$ promise; – vicont