2015-05-01 70 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/