我有一条类似的路线,应根据参数是否为数字来加载不同的 View 和 Controller 。例子:
/artists/2
应该带有 View ArtistsIndexController
/www/artists/index.html
/artists/name
应该带有 View ArtistsProfileController
/www/artists/profile.html
理想情况下,我会使用类似:
$routeProvider.when("/artists/:page", {
templateUrl: "/www/artists/index.html",
controller: "ArtistsIndexController"
});
$routeProvider.when("/artists/:name", {
templateUrl: "/www/artists/profile.html",
controller: "ArtistsProfileController"
});
其中
:page
是数字,而:name
不是数字。注意,我看到了一个相关的github issue(可从this question找到),但想知道是否有解决方案或首选解决方案。
最佳答案
另一种方法是使用ui-router,它支持路由的正则表达式(在许多其他事物中),这将允许:
$stateProvider.state("artists-index", {
url: "/artists/{page:[0-9]*}",
templateUrl: "/www/artists/index.html",
controller: "ArtistsIndexController"
});
$stateProvider.state("artists-profile", {
url: "/artists/{name}",
templateUrl: "/www/artists/profile.html",
controller: "ArtistsProfileController"
});
关于javascript - AngularJS正则表达式路由类似的URL来加载不同的 Controller 和 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18131834/