Angularjs 我能';t从控制器呼叫服务

Angularjs 我能';t从控制器呼叫服务,angularjs,Angularjs,我正在尝试从我的控制器呼叫服务 leadService.loadPage.query({pageNumber: pageNumber}, success, error); 服务定义 它显示错误类型错误:未定义不是函数。它可能无法触发query语句。 我将RequireJS与AngularJS一起使用。这里有两个问题。第一个被@MannyD发现了。必须像这样修复函数定义(即在引用函数的return语句之前声明函数): 第二个问题是我发现的:类似于leadService.loadPage.quer

我正在尝试从我的控制器呼叫服务

leadService.loadPage.query({pageNumber: pageNumber}, success, error);
服务定义

它显示错误
类型错误:未定义不是函数。它可能无法触发
query
语句。
我将RequireJS与AngularJS一起使用。

这里有两个问题。第一个被@MannyD发现了。必须像这样修复函数定义(即在引用函数的return语句之前声明函数):

第二个问题是我发现的:类似于
leadService.loadPage.query的调用({pageNumber:pageNumber},成功,错误)
将触发错误,因为
loadPage
是一个函数而不是
$reource
。您必须在定义中添加参数或在调用中添加父项。这意味着:

define([], function() {
    return ['$resource', function ($resource) {
        function loadPage() {
            return $resource('http://localhost/api/loadPage/:pageNumber', null, {
                query: {
                    method: 'GET',
                    params: {
                        pageNumber: '1'
                    },
                    isArray: true
                }
            });
        }

        return {
            loadPage: loadPage()
        };
    }]
});

//...

leadService.loadPage.query({pageNumber: pageNumber}, success, error);

define([], function() {
    return ['$resource', function ($resource) {
        function loadPage() {
            return $resource('http://localhost/api/loadPage/:pageNumber', null, {
                query: {
                    method: 'GET',
                    params: {
                        pageNumber: '1'
                    },
                    isArray: true
                }
            });
        }

        return {
            loadPage: loadPage
        };
    }]
});

//...

leadService.loadPage().query({pageNumber: pageNumber}, success, error);

可能是因为您试图在返回后定义
loadPage
?另外:loadPage是一个方法而不是对象。您将得到一个
函数没有方法查询
。是的,但调用应该是
leadService.loadPage().query({pageNumber:pageNumber},成功,错误)
而不是
leadService.loadPage.query({pageNumber:pageNumber},成功,错误)
@LuisMasuelli yeah在我发表评论后注意到了这一点。干得好@Luis,我被误导了,因为我对
$http
使用了相同的概念。因此,感谢您提供有用的解决方案!
define([], function() {
    return ['$resource', function ($resource) {
        function loadPage() {
            return $resource('http://localhost/api/loadPage/:pageNumber', null, {
                query: {
                    method: 'GET',
                    params: {
                        pageNumber: '1'
                    },
                    isArray: true
                }
            });
        }

        return {
            loadPage: loadPage()
        };
    }]
});

//...

leadService.loadPage.query({pageNumber: pageNumber}, success, error);
define([], function() {
    return ['$resource', function ($resource) {
        function loadPage() {
            return $resource('http://localhost/api/loadPage/:pageNumber', null, {
                query: {
                    method: 'GET',
                    params: {
                        pageNumber: '1'
                    },
                    isArray: true
                }
            });
        }

        return {
            loadPage: loadPage
        };
    }]
});

//...

leadService.loadPage().query({pageNumber: pageNumber}, success, error);