我使用角度和角度路由器-ui。我想利用动态网址参数。
这就是我使用它的方式:
.state('index.domain', {
url: '/domain',
template: "<div ui-view> Home Domain page </div>"
})
.state('index.domain.id', {
url: '/:domainId',
resolve: {
domainId: function($stateParams){
return $stateParams.domainId;
}
},
templateUrl: "./development/administration/domain.html",
controller: function(domainId){
console.log(domainId);
}
})
我使用以下调用调用路由:
$state.go('index.domain.id', {"domainId": domainId});
执行解决方案并且$ stateParams获取具有domainId的对象。尽管如此,还没有进入控制器。 URL /:domainId也没有改变。
如果我在浏览器中更改URL以指向URL / RANDOM_DOMAIN_ID (其中RANDOM_ID是domainId有效数字)它会执行解析并转到控制器。
我在$ state.go电话上遗漏了什么?
答案 0 :(得分:1)
我按原样使用上述状态:
.state('index', {
url: '/index',
template: "<div ui-view> Index </div>"
})
.state('index.domain', {
url: '/domain',
template: "<div ui-view> Home Domain page </div>"
})
.state('index.domain.id', {
url: '/:domainId',
resolve: {
domainId: function($stateParams){
return $stateParams.domainId;
}
},
templateUrl: "development/administration/domain.html",
controller: function(domainId){
console.log(domainId);
}
})
在主叫方面做了一些调整 - 这是有效的:
<a ui-sref="index.domain.id({domainId: 1})">...
<button ng-click="$state.go('index.domain.id', {domainId: 22});">...
检查here