angularJs 中的动态嵌套路由
Dynamic nested routing in angularJs
尝试使用 angular stateProvider 实现以下路由系统:
some_domain.com/abc/pqr/xyz
问题是 "some_domain.com" 之后的级别数可能会有所不同。可以像
- some_domain.com/abc/pqr/xyz
- some_domain.com/abc/pqr
- some_domain.com/abc
- some_domain.com/abc/pqr/xyz/1234
在状态定义中为此尝试了多种方法:
$stateProvider
.state('dummy', {
url: '/*',
templateUrl: 'views/home.html',
controller: 'LandingPage'
});
}]);
有人可以帮我解决这个问题吗?
由于您所说的参数是路由本身的一部分,因此您无法通过单一路由来处理所有这些情况。我可以想到 2 种方法来解决它:
- 为每个案例创建单独的路线。
如果您可以相应地修改逻辑,请使用可选参数。如果参数可以是可选的,它们应该作为查询参数发送,而不是让它们成为 URL 的一部分。所以,URL 变成了这样的东西:
url: '/dummy?param1?param2?param3'
尝试使用 angular stateProvider 实现以下路由系统:
some_domain.com/abc/pqr/xyz
问题是 "some_domain.com" 之后的级别数可能会有所不同。可以像
- some_domain.com/abc/pqr/xyz
- some_domain.com/abc/pqr
- some_domain.com/abc
- some_domain.com/abc/pqr/xyz/1234
在状态定义中为此尝试了多种方法:
$stateProvider
.state('dummy', {
url: '/*',
templateUrl: 'views/home.html',
controller: 'LandingPage'
});
}]);
有人可以帮我解决这个问题吗?
由于您所说的参数是路由本身的一部分,因此您无法通过单一路由来处理所有这些情况。我可以想到 2 种方法来解决它:
- 为每个案例创建单独的路线。
如果您可以相应地修改逻辑,请使用可选参数。如果参数可以是可选的,它们应该作为查询参数发送,而不是让它们成为 URL 的一部分。所以,URL 变成了这样的东西:
url: '/dummy?param1?param2?param3'