Angularjs $ routeProvider不路由

时间:2013-09-12 12:42:50

标签: javascript angularjs coffeescript url-routing

我的Angular JS应用程序中有一个$routeProvider,它不会在ng-view中加载模板。 我已设置<html data-ng-app="myApp"><section data-ng-view></section

它既不加载模板(甚至不加载XHR),也不重定向其他路径(如/#/foo/bar/foo/,并且不会引发错误。

这是我的配置:

angular.module('myApp', ['myAppFilters'])
    .config [
        '$routeProvider',
        ($routeProvider) ->
            $routeProvider
                .when '/:year/:month',
                    templateUrl: 'partials/detail.html'
                    controller: DetailCntl
                .when '/:user/:year/:month',
                    templateUrl: 'partials/detail.html'
                    controller: DetailCntl
                .otherwise
                    redirectTo: '/'
    ]

编辑:以下是已编译的JS:

angular.module('myApp', ['myAppFilters']).config([
    '$routeProvider', function($routeProvider) {
      return $routeProvider.when('/:year/:month', {
        templateUrl: 'partials/detail.html',
        controller: DetailCntl
      }).when('/:user/:year/:month', {
        templateUrl: 'partials/detail.html',
        controller: DetailCntl
      }).otherwise({
        redirectTo: '/'
      });
    }
  ]);

编辑#2:我自己找到了解决方案: 我的factories.coffee中的这一行覆盖了配置:

angular.module('myApp', []).factory 'api', ($http, $q, $cacheFactory) ->
...

现在我已将配置分配给@myApp并使用@myApp.factory 'api', ...并且它正在运行。

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案:我在我的factories.coffee中有这一行,它覆盖了配置:

angular.module('myApp', []).factory 'api', ($http, $q, $cacheFactory) ->
...

现在我已将配置分配给@myApp并使用@myApp.factory 'api', ...并且它正在运行。

感谢您的支持。