我在我的应用程序中实现了breadcrumb并且当我通过导航栏导航到页面时工作正常,下面我点击该按钮时我的页面上的按钮痕迹导致无法正常工作我猜我正在使用$ location。路径,如何在cnaRsk函数上调用state并使breadcrumb工作?
main.html中
<button require-control-point="RISK_ADD;ALIGN_RISK_ADD"
class="btn btn-default pull-right " type="button" ng-click="cnaRsk()">Create
And Align New Risk</button>
main.js
$scope.cnaRsk = function () {
$location.path('/risk/cnaRsk/' + $scope.processDTO.processKey);
};
app.js
.state('app.editRiskProcess', {
url: '/risk/create/:processId',
templateUrl: 'views/risk/createNewRisk.html',
controller: 'RiskCtrl',
data: {
authenticate: true
},
breadcrumb: {
title: 'riskInProcess :processId',
path: ['app.home', 'app.editProcess', 'app.editRiskProcess']
}
})
答案 0 :(得分:1)
由于您使用的是ui-router,因此不应使用$ location。请改用$ state.go和ui-sref。
您可以通过添加ui-sref指令来点击HTML来更改您的状态:
<button require-control-point="RISK_ADD;ALIGN_RISK_ADD"
class="btn btn-default pull-right "
type="button"
ui-sref="app.editRiskProcess({processId:processDTO.processKey})">
Create And Align New Risk
</button>
或者,如果您想在控制器中触发状态更改,可以使用:
$state.go("app.editRiskProcess",{processId:$scope.processDTO.processKey});
警告请记住,这些函数应该如下所示:
ui-sref="statename({stateParamName:myvar})"
$state.go("statename",{stateParamName:myvar});
希望它有所帮助。