我遇到了一个我似乎无法弄清楚的问题。当使用ui-sref更改为新状态时,正确的控制器“会”加载,但当前控制器也会重新加载。事实上两次。 (我在JavaScript中设置了一个断点,它击中了两次断点)。
以下是相关的UI路由器代码:
.state('index',
{
abstract: true,
url: "/index",
templateUrl: "app/shared/content.html"
})
.state('index.cardholder',
{
url: '/cardholder',
views: {
'content': {
templateUrl: 'app/views/cardholder/cardholder.html',
controller: 'cardholderController'
}
},
resolve: {
loadPlugin: function ($ocLazyLoad) {
return $ocLazyLoad.load([
{
name: 'app',
files: ['app/views/cardholder/cardholderController.js']
}
]);
}
},
params: {
loadParams: false
}
})
.state('index.cardholderedit',
{
url: '/cardholder/edit',
views: {
'content': {
templateUrl: 'app/views/cardholder/edit/editCardholder.html',
controller: 'editCardholderController'
}
},
resolve: {
loadPlugin: function ($ocLazyLoad) {
return $ocLazyLoad.load([
{
name: 'app',
files: ['app/views/cardholder/edit/editCardholderController.js']
}
]);
}
},
params: {
id: null,
template: null
}
})
这是调用新状态的sref:
<a ui-sref="index.cardholderedit({ id:cardholder.empPersonDTO.personId, template:selectedTemplate})">
我在cardholderController上进行了搜索,以确保我在某个地方没有命名问题 - 这一切看起来都是犹太人。
为什么cardholderController会重新加载?我该如何阻止它?