angularjs尝试从服务到控制器调用方法时未定义的方法

时间:2014-05-12 17:33:08

标签: angularjs angularjs-directive angularjs-scope

以下是我创建服务的方式

app.factory('PageService', function($http) {
    return {
        getPageTemplate: function(url) {
            return $http.get(urlBuilder(url));
        }
    }
})

这是我的控制器

app.controller('PageController', ['$scope', function($scope, $http, PageService) {

    $scope.changePanel = function(url) {
        PageService.getPageTemplate(url).success(function(data) {
            console.log(url);
        })  
    }

}])
当ng-click触发时,

将调用changePanel。

这是我收到的消息

TypeError:无法调用方法' getPageTemplate'未定义的

1 个答案:

答案 0 :(得分:4)

您没有正确地将服务注入控制器。

将其更改为

app.controller('PageController', ['$scope', '$http', 'PageService', function($scope, $http, PageService) {