我是angularjs的新手,嘗試訪問使用$ resource調用我的rest api的服務方法。但是,當我試圖訪問它提供一個錯誤。也當我嘗試訪問不使用$資源的方法時,它工作正常。
這是我的代碼。
app.factory('userService', ['$resource',
function($resource) {
var factory = {};
factory.authenticatedUser;
factory.test = function(){
return "Test";
};
factory.getLoggedInUser = function(){
$resource('api/user', {}, {
query: {method: 'GET'}
});
};
factory.getAuthenticatedUser = function(){
return factory.authenticatedUser;
};
factory.setAuthenticatedUser = function(user){
factory.authenticatedUser = user;
};
return factory;
}]);
這裏是我如何嘗試訪問該方法。
userService.getLoggedInUser.query(function(loggedInUser) {
});
這會引發以下錯誤。
TypeError: userService.getLoggedInUser.query is not a function
但這工作正常。
var text = userService.test();
我在做什麼錯在這裏?
'getLoggedInUser'是一個函數。你爲什麼認爲它有一個名爲'query'的函數類型的字段? – 2014-10-02 06:16:53
我在角度的起點,並沒有關於如何解決這個問題的線索。我的要求是將登錄的用戶對象存儲在服務中,以便我可以檢索它以備後用。 – 2014-10-02 06:23:41
這與角度沒有多大關係。您試圖訪問不存在的屬性。 getLoggedInUser是你定義的一個函數。它沒有查詢屬性。請注意,您從不*調用*函數。還要注意的是,即使你叫它,它也不會返回任何東西。 – 2014-10-02 06:25:47