我想要实现的目标:
在主状态(/ model)的模板中,我有一个子状态阶段(/阶段)的链接,但我也希望能够从主状态直接链接到给定的子状态阶段(/ phase / 1 / task1)。
我的配置:
$stateProvider
.state('model', {
url: '/model',
views: {
'': {
templateUrl: 'model.tpl.html',
controller: 'modelController'
}
},
})
.state('model.phase', {
url: '/phase/{phaseId:int}',
views: {
'@main.model': {
templateUrl: 'model.phase.tpl.html',
controller: 'phaseController'
}
}
})
.state('model.phase.task', {
url: '/task/{taskId:int}',
controller: 'taskController'
})
};
在model.tpl.html中,我列出了包含一般信息的所有阶段,对于每个阶段,我都列出了该阶段的任务,如下所示:
<div ng-repeat="task in tasks | filter:{primary:true, knowledgeAreaId:area.id, phaseId:phase.id}:true" class="task" ng-class="{ active: task.active }">
<div class="task__content" ui.sref="LINKHERE"></div>
</div>
在这里,我想构建一个直接从主模型页面到给定阶段的给定子页面的链接。
我在model.tpl.html中尝试过的是像这样添加ui.sref
<a ui.sref=".phase({ phaseId: task.phaseId}.task({ taskId: task.taskId})">
但是这给了我一个错误,所以你好像不能链接&#39;有财产的州。
如果我只想链接到一个阶段,那么以下工作就可以了:
<a ui.sref=".phase({ phaseId: task.phaseId}">
有没有正确的&#39; ui.router中的soloution用于此场景,或者我是否必须手动为href值构建字符串。这样我将url更改为我想要的路径,而不是更改为给定的状态。这样做似乎是错误的,当其他一切通过切换状态起作用时。
类似的东西:
http://localhost/#/model/phase/1/task1
答案 0 :(得分:0)
这应该有效:
ui.sref=".phase.task({ phaseId: task.phaseId, taskId: task.taskId })"