在控制器中使用ngResource工厂显示错误

时间:2016-08-23 13:21:55

标签: angularjs

大家好我是角度js的新手我希望通过使用资源获取数据来获取数据我必须构建资源工厂但是当我在控制器中调用此工厂时出现此错误错误:Users.myUser未定义任何人都可以告诉我我做错了什么或为什么我在这里得到这个错误是我的代码。

var Myapp = angular.module('starter.controllers', ['ngResource'])
    .config(['$resourceProvider', function ($resourceProvider) {
        $resourceProvider.defaults.stripTrailingSlashes = false;
    }]);
    Myapp.factory('Users', function ($resource) {
    return{
        myUser:
          $resource('some url', {}, {
            query: {
              method: 'POST',
              params: {},
               isArray: false
            }
        })
    };
});



Myapp.controller('DashCtrl', function ($scope,Users) {
    Users.myUser.query().$promise.then(function (data) {
        console.log(JSON.stringify(data, null, 4));
    }, function (error) {
        console.log('Error is: ' + JSON.stringify(error, null, 4));
    });
});

2 个答案:

答案 0 :(得分:1)

您应该从$resource工厂函数返回myUser个对象。

Myapp.factory('Users', function($resource) {
  return {
    myUser: function() {
      return $resource('some url', {}, {
        query: {
          method: 'POST',
          params: {},
          isArray: false
        }
      });
    }
  }
});

控制器

Myapp.controller('DashCtrl', function ($scope,Users) {
    //Call myUser method like below
    Users.myUser().query().$promise.then(function (data) {
        console.log(JSON.stringify(data, null, 4));
    }, function (error) {
        console.log('Error is: ' + JSON.stringify(error, null, 4));
    });
});

答案 1 :(得分:0)

按以下更新您的工厂

Myapp.factory('Users', function ($resource) {
    function myUser() {
          return  $resource('some url', {}, {
                query: {
                    method: 'POST',
                    params: {},
                    isArray: false
                }
            })
    }
});