Angular routeProvider命名组不起作用?

时间:2014-06-18 19:24:43

标签: angularjs

这是我的代码。我想让它匹配任何网址。如果我用/:something /:somethingelse替换/ * path并访问/ asdf / asdf它将起作用,但它使用/ * path完全不匹配。我能找到的所有东西都表明这是正确的语法。

我正在使用角度1.2.18,并尝试了最新的测试版。

有谁知道我可能会遇到什么?

编辑:这是一个小提示,显示它不起作用:http://jsfiddle.net/2hYK9/

window.MyApp = MyApp = angular.module 'MyApp', ['ngResource', 'ngSanitize', 'ngAnimate', 'ngRoute', 'ngTouch']

MyApp.config ['$locationProvider', ($locationProvider) ->
    $locationProvider.html5Mode true
]

MyApp.config ['$routeProvider',
    ($routeProvider, $routeParams, $location) ->
        $routeProvider.
            when("/*path", {
                templateUrl: (path) ->
                    console.log path
                    return '/pages/asdf.html'
                ,
                controller: 'BrowseController',
                reloadOnSearch: false
            })
]

2 个答案:

答案 0 :(得分:1)

我认为正确的语法是:path*

来自angular documentation

  

path可以包含以冒号开头并以a结尾的命名组   star:eg:name*。所有字符都热切地存储在$ routeParams中   路线匹配时在给定名称下。

答案 1 :(得分:0)

嗯,现在我觉得愚蠢。所有其他结果都链接到旧版本的文档,以及这是如何工作的。

现在这是正确的语法:

/:路径*