2015-05-01 162 views
0

我正在嘗試使用Angular,並且想要使用$ resource。我不清楚的是如何創建資源元素。Angular:如何訪問資源?

例如:

var service = angular.module("apiService", ["ngResource"]).factory('User', 
    ['$resource', 
     function($resource){ 
     return $resource('/users/:userId', {userId:'@id'}); 
    }] 
); 

我期待有一個 '用戶' 對象的訪問,就像這樣:

User.query(); 

但用戶沒有定義。有沒有一個特定的命名空間,其中定義了這個對象?

什麼是最小運行樣本來得到這個工作? (沒有加載angular.js和angular-resource.js)

回答

1

你只需要在查詢中傳遞成功函數。

.controller('mainCtrl', function($scope, User){ 
    User.query(function(user){ 
     $scope.user = user; //call when return data 
    }); 
}) 

或者你也可以通過這個解決查詢

.controller('mainCtrl', function($scope, User){ 
    User.query().$promise.then(function(user){ 
     $scope.user = user; //call when return data 
    }); 
}) 
+0

的問題是,用戶在一切都沒有確定! – tomsoft

+0

@tomsoft是否在控制器中注入了服務?在您的主模塊中,是否注入了'apiService'模塊 –

+0

這可能就是關鍵。我應該怎麼做? (我對Angular相當陌生,只是運行一個fe教程) – tomsoft

1

也許你忘了,包括「apiService」,或者用戶在控制器的$承諾對象? 這工作:

angular.module("apiService", ["ngResource"]).factory('User', 
    ['$resource', 
     function($resource){ 
     return $resource('/users/:userId', {userId:'@id'}); 
    }] 
); 

angular.module("testApp", ['apiService']).controller('Test', function($scope, User) { 
    User.query(); 
}); 

搗鼓裁判:http://jsfiddle.net/thepeak/2sscyck9/