我有一个可以遇到两个上下文的应用程序 - 1)全局和2)客户端
在全球范围内,网址就像这样mydomain.com/#login,mydomain.com/#register但在客户端上下文时,网址就像这样:mydomain.com/#/ClientKey/login和mydomain.com/# / ClientKey /注册。在这两种情况下,我想打开完全相同的模板,即login.html和register.html。实现此目的的一种方法是复制routeProvider.when,如下所示:
$routeProvider.when('/:ClientKey/_login', {
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
})
$routeProvider.when('/_login', {
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
})
我的问题是,有一种方法可以在一个routeProvider.when中进行,而不是只用很小的差异复制它两次。这对我的应用程序很重要,因为有几个这样的链接,如login,register,editProfile,changePassword等。
答案 0 :(得分:1)
喜欢这个吗?
var routes = {
'/_login' : { templateUrl: 'views/login.html', controller:'LoginCtrl' }
...
}
for (var k in routes) {
$routeProvider
.when(k, routes[k])
.when('/:clientId' + k, routes[k]);
}
编辑:
您实际上可以使用?
执行可选组,因此以下内容可能有用。
$routeProvider.when(':clientId?/_login', { ... });