如何使用两个ui-view独立人士

时间:2016-01-04 18:16:20

标签: angularjs angular-ui-router multiviews

我有一个应用程序,我希望两个面板(ui-view)单独工作。

https://jsbin.com/neroze/edit?js,output

但是,当我点击链接更改右侧面板时,中心面板会更改,当我单击更改中央面板时,右侧面板会更改。

我想知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您应该有一个主要状态(父状态)来定义您的视图(使用控制器和模板等...) 然后,您可以使用子状态,使用绝对状态定义覆盖视图。

$stateProvider.state('app', {
    url: '/',
    abstract: true,
    parent: 'app',
    views: {
        'panelLeft@app': {
             templateUrl: 'modules/panel/views/leftPanel.html',
             controller: 'LeftPanelCtrl as vm'
        },
        'panelRight@app': {
            templateUrl: 'modules/module1/views/anotherView.html',
            controller: 'Module1Ctrl as vm'
        }
    }
}).state('anotherstate', {
    url: '/',
    parent: 'app',
    views: {
        'panelRight@anotherstate': {
            templateUrl: 'modules/module2/views/differentView.html',
            controller: 'Module2Ctrl as vm'
        }
    }
});

注意:这只是scractch的一个例子,可能不适用于第一次运行。