控制器在ui路由器状态改变时重新加载

时间:2016-10-30 02:56:06

标签: angularjs angular-ui-router

我遇到了一个我似乎无法弄清楚的问题。当使用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会重新加载?我该如何阻止它?

0 个答案:

没有答案