AngularJS $promise is undefined

こ雲淡風輕ζ 提交于 2019-12-07 14:40:36

问题


I am trying to make an ajax call using $resource and load a datatable upon receiving the data from a server. But when I call a get() then I am getting $promise as undefined. I am using a factory to make the call. Here is my factory :

    app.factory('getAllUsers', [ '$resource', function($resource) {
return $resource('URL', {}, {get : {method : 'GET'}});
}]);

And the controller :

      app.controller('MyController',function($scope,$location,getAllUsers){

        console.log("In controller");

        getAllUsers.get().$promise.then(function(data) {

            loadDatatable(data);
            });


     });

ERROR : getAllUsers.get().$promise is undefined

NOTE : I have included ngResource in my app and angular-resource.js in index.html too.


回答1:


The $resource service doesn't return promises in version 1.0.x; be sure to read the correct version of the docs. By default, http://docs.angularjs.org/api/ is for the 1.2.x series, which is currently unstable. Try this version of the api docs: http://code.angularjs.org/1.0.8/docs/api




回答2:


Since you are using $resource you can do

 getAllUsers.get({},function(data) {
    loadDatatable(data);
 });



回答3:


Did you forget to add .json as type of call?

app.factory "User", ["$resource", ($resource) ->
  $resource("/users/:id.json", {id: "@id"}, {update: {method: "PUT"}})
]


来源:https://stackoverflow.com/questions/19589051/angularjs-promise-is-undefined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!