首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确调用我的工厂服务?

如何正确调用我的工厂服务?
EN

Stack Overflow用户
提问于 2015-05-21 10:49:12
回答 1查看 63关注 0票数 1

当我试图调用我的服务时,我得到了‘不是一个函数’错误。NgResource已经被注射了。我做错了什么?

controller.js:

代码语言:javascript
复制
app.controller('controllerA', ['$scope', 'CustomizingService', 
    function($scope, CustomizingService) {
        $scope.cust = CustomizingService.Customizing.squares({numberOf: 2, valid: true});
}]);

service.js:

代码语言:javascript
复制
(function () {

    angular.module('ST_CCG').factory('CustomizingService', ['$resource', function ($resource) {
        //var url = config.CustomizingAPI_Url + '/Customizing/:link/';
        var url = 'http://localhost:54483/BusinessService.svc/:link/';

        return {
            Customizing: $resource(url,  {
                squares: {
                    method: 'GET',
                    params: { link: 'GetSquares', numberOf: '@numberOf', valid: @valid },
                    isArray: true },
                 circles: {
                    method: 'GET',
                    params: { link: 'GetCircles',  valid: true },
                    isArray: true }
            })
        };
    }]);
})();

编辑

我正在使用chrome调试器并得到以下错误: TypeError: CustomizingService.Customizing.orders不是一个函数

app.js:

代码语言:javascript
复制
var app = angular.module('ST_CCG', [
  'ngRoute',
  'ngResource'
])
.config(['$routeProvider', 
        function ($routeProvider) {
            $routeProvider.
                when('/menu', {
                    templateUrl: 'Modules/Menu/view.html',
                    controller: 'controllerA'
                }).
                when('/orders', {
                    templateUrl: 'Modules/Orders/view.html',
                    controller: 'controllerB'
                }).
                otherwise({
                    redirectTo: '/'
                });
        }
]);

index.html:

代码语言:javascript
复制
...
<!--MODOLE + CONTROLLER Resources-->
<script src="app.js"></script>
<script src="service.js"></script>
<script src="modules/menu/controller.js"></script>
<script src="modules/orders/controller.js"></script>
</head>

<body ng-app="ST_CCG">

<a href="#/menu">Menu</a>
<a href="#/orders">Orders</a>

<div ng-view></div>

</body>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 10:59:32

这可能是因为你把你的动作传递到默认参数的位置。把它改成

代码语言:javascript
复制
Customizing: $resource(url, {valid: true}, {
    squares: // etc

我使用valid: true作为默认参数,因为您似乎在这两个操作中都使用了它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30371561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档