我正在尝试使用 jQuery 设置一个 angularJS 应用程序,并且我正在使用 angular 路由系统来执行以下操作:
var app = angular.module('app', []);
app.config(function($routeProvider) {
$routeProvider.when('/start_page', {
templateUrl: 'path/to/template',
controller: 'StartPageController'
});
$routeProvider.when('/container/:container/thing/:thing', {
templateUrl: 'path/to/template',
controller: 'ThingsInContainersController'
});
$routeProvider.otherwise({ redirectTo: '/start_page' });
})
我可以导航到具有允许我选择 container_id 和 thing_id 界面的起始页面,然后将我发送到容器和事物的路线,这一切都可以完美运行。问题是,如果我刷新容器事物页面,则会收到以下错误:
Uncaught Error: Syntax error, unrecognized expression: [href=#container/1/thing/2]
这似乎是堆栈跟踪中的 jQuery 错误。跟踪根本没有提到我的代码。我尝试了一些事情,似乎每当我输入一个以上的 url/
之后,#
我都会收到错误,而不是被正确地重定向到起始页。我现在的解决方案是使用-
s 而不是/
s 作为 url 分隔符,这似乎有效,但我怀疑实际上有一种正确的方法,我想知道它是什么。
我目前的解决方案:
var app = angular.module('app', []);
app.config(function($routeProvider) {
$routeProvider.when('/start_page', {
templateUrl: 'path/to/template',
controller: 'StartPageController'
});
$routeProvider.when('/container-:container-thing-:thing', {
templateUrl: 'path/to/template',
controller: 'ThingsInContainersController'
});
$routeProvider.otherwise({ redirectTo: '/start_page' });
})