使用路由的未定义服务控制器

时间:2016-03-07 05:04:56

标签: javascript angularjs ngroute

我正在使用带有我的服务文件分开的路由的角度服务。 我在控制台中面对branchService是未定义的错误。参见Plunker code中的代码 这是branchService.js:

 angular.module("myApp").service('branchService', ['$http', function ($http) {
    var link = "http://localhost:8008/";
    //----Get Dining Tables`enter code here`
    this.getBranches = function ($scope) {
        return $http({
            method: "GET",
            url: encodeURI(link + "Branch/GetBranches/"),
            headers: { 'Content-Type': 'application/json' }
        }).success(function (data) {
            console.log(data);
        }).error(function (data) {
            console.log(data);
        });
    };
}]);

和myController.js在这里:

var app = angular.module("myApp", ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider
        .when('/branches', {
            templateUrl: 'branches.html',
            controller: 'branchController'
        })

        .otherwise({
            redirectTo: '/branches'
        });
});

app.controller('branchController', ['$scope', '$filter', 'branchService', function ($scope, $filter, branchService) { 
  branchService.getBranches($scope);
}

当我运行Error:$ injector:modulerr 模块错误错误显示在控制台

3 个答案:

答案 0 :(得分:1)

您是否在index.html或任何第一页中添加了branchService.js文件的referance。

尝试在myController.js之后添加referance。

答案 1 :(得分:0)

在使用该服务之前先注入它以便您可以使用它

var app = angular.module("myApp", ['ngRoute', 'branchService']);

编辑:

这是branchController.js中的问题:

var app = angular.module("myApp", ['ngRoute']);

您再次注入了ngRoute,事实上您已将其添加到app.js中:

var app = angular.module("myApp",['ngRoute']);

修复:删除ng route

var app = angular.module("myApp");

答案 2 :(得分:0)

你必须这样做。您的服务应该先在您的控制器之前加载。



var app = angular.module("myApp", ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider
        .when('/branches', {
            templateUrl: 'branches.html',
            controller: 'branchController'
        })

        .otherwise({
            redirectTo: '/branches'
        });
});

app.service('branchService', ['$http', function ($http) {
    var link = "http://localhost:8008/";
    //----Get Dining Tables`enter code here`
    this.getBranches = function ($scope) {
        return $http({
            method: "GET",
            url: encodeURI(link + "Branch/GetBranches/"),
            headers: { 'Content-Type': 'application/json' }
        }).success(function (data) {
            console.log(data);
        }).error(function (data) {
            console.log(data);
        });
    };
}]);

app.controller('branchController', ['$scope', '$filter', 'branchService', function ($scope, $filter, branchService) { 
  branchService.getBranches($scope);
}