对象不支持属性或方法'查询'在角度

时间:2015-10-26 16:37:57

标签: angularjs

工厂

(function () {
  angular.module("common.script").factory("expenseResource", ["$resource", expenseResource]);

  function expenseResource($resource) {

    var expenceCategory = function ($resource) {
        return $resource("api/expenceCategory/:expenceCategoryId");
    }

    return {
        expenceCategory: expenceCategory
    };
  }

})();

控制器

(function () {
  var app = angular.module("ExpenceManagerApp", ["ui.router", "common.script", "expenseResourceMock"]);

  app.config(["$stateProvider","$urlRouterProvider", function ($stateProvider,$urlRouterProvider) {

    $urlRouterProvider.otherwise("/");

    $stateProvider
        .state("HomePage", {
            url:"/",
            templateUrl: "App/Main/homePage.html",

        })
        .state("Settings", {
            url: "/Settings",
            templateUrl: "App/Expense/settingsPage.html",

        })
     .state("expenceCategoryEdit", {
         url: "/expenceCategoryEdit",
         templateUrl: "App/Expense/editExpenseCategory.html",
         controller: "editExpenseCategoryCtrl as vm",
         resolve: {
             expenseResource: "expenseResource",
             expenseCategoryList: function (expenseResource) {
                 return expenseResource.expenceCategory.query().$promise;
             }
         }
     })
  }]);

}());

1 个答案:

答案 0 :(得分:1)

expenceCategory是一个函数,因此将其用作函数:

expenseResource.expenceCategory().query().$promise

或者将expenceCategory定义为字段:

return {
    expenceCategory: expenceCategory()
};

注意:您的服务每次启动时都会创建新的$资源。它应该只是:

function expenseResource($resource) {
        return $resource("api/expenceCategory/:expenceCategoryId");
}

在控制器中:

expenseResource.query().$promise