同一页面上的3个控制器显示$ state.is()的不同结果

时间:2014-09-02 02:33:17

标签: angularjs

首先,道歉我没有一个例子可以展示。目前的情况是我正在使用UI路由器,我有3个视图,每个视图使用不同的控制器,每个视图在同一页面上,状态名称为'结果'。即头部,内容和侧边栏。

但是,当我呼叫true时,只有一个控制器(内容)返回$state.is('result')。我也试过$state.includes('result')

当我仅记录$state时,所有3个状态对象在\result中显示相同的正确$state.current.name,但是,如果我尝试记录$state.current直接地,name变为空白,其中2个。

我已尝试更换视图的顺序,但只有内容返回true

我多次阅读该文档,但我无法找到原因。请帮忙!

.state('result', {
    url: '/result',
    views: {
        'headView' : {
            templateUrl: 'modules/core/templates/head.html'
        },
        'contentView' : {
            templateUrl: 'modules/core/templates/content.html'
        },                      
        'sidebarView' : {
            templateUrl: 'modules/core/templates/sidebar.html'
        },
    }
})

1 个答案:

答案 0 :(得分:0)

将控制器置于状态视图定义中,其中templateUrl已定义。

E.G。

<强> DEMO

.state('result', {
    url: '/result',
    views: {
        'headView' : {
            templateUrl: 'modules/core/templates/head.html',
            controller: 'HeadViewController',
        },
        'contentView' : {
            templateUrl: 'modules/core/templates/content.html',
            controller: 'ContentViewController'
        },                      
        'sidebarView' : {
            templateUrl: 'modules/core/templates/sidebar.html',
            controller: 'SidebarViewController'
        },
    }
})