角度路由配置在1.2.3中不起作用

时间:2013-12-03 05:07:49

标签: javascript angularjs

我有一个基于谷歌的Angular js框架的代码。 该代码定义了一些路由并将视图关联到url路径。 代码就像这样

var profileModule = angular.module('profileModule', ['ngResource']);

profileModule.config(function ($routeProvider) {
    $routeProvider
        .when('/', {
                controller: 'profileController',
                templateUrl: 'Partials/profileList.html'
            })
        .otherwise({ redirectTo: '/' });
    $routeProvider.when('/profile/:profileId', {
        templateUrl: 'Partials/profileDetail.html',
        controller: 'profileDetailController'
    });

});

profileModule.controller('profileController', function($scope, profileFactory) {
    $scope.profiles = [];

    function init() {
        $scope.profiles = profileFactory.query();
    }

    init();
});

profileModule.factory('profileFactory', function ($resource) {
    return $resource("api/profiles/:Id", { Id: "@Id" }, { "update": { method: "PUT" } });
});

代码使用的是Angular的1.1.5版本,并且工作正常。

但后来我尝试使用较新版本1.2.3

并且代码无法在此版本上运行。

它给出了这个错误

[$injector:unpr] Unknown provider: $routeProvider

我查看了如何在1.2.3中使用routeProvider的示例 我从网站上找到了这个例子

profileModule.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
.....

我试过这个,但仍然是同样的错误

我在CDN网络中使用Angular,特别是从这里

http://code.angularjs.org/1.2.3/angular-route.js

2 个答案:

答案 0 :(得分:1)

您还需要依赖ngRoute模块:

var profileModule = angular.module('profileModule', ['ngResource', 'ngRoute']);

答案 1 :(得分:1)

自Angular v 1.2以来,他们已将路由分离为单独的文件,因此您必须将其包含在代码中,然后将其注入模块中。

你可以在这里找到最新版本(angular-route.js): http://code.angularjs.org/1.2.3/