如何在AngularJS ui-router应用程序中将菜单分成不同的视图?

时间:2017-03-05 21:24:26

标签: angularjs angular-ui-router

我有这个:

<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" ui-sref="main">Project name</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li ui-sref-active="active"><a ui-sref="main.tm">Task manager</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li ui-sref-active="active"><a ui-sref="main.settings">Settings</a></li>
            </ul>
        </div><!--/.nav-collapse -->
    </div>
</nav>

<div class="container">
    <!-- Main component for a primary marketing message or call to action -->
    <div class="jumbotron" ui-view>
        <div class="main-viewer" ></div>
    </div>
</div> <!-- /container -->

状态conf:

$stateProvider.state({
    name: 'main',
    url: '/',
    template: mainTemplate
});

$stateProvider.state({
    name: 'main.tm',
    url: '/tm',
    controller: 'tm.list',
    template: view
});

$stateProvider.state({
    name: 'main.settings',
    url: '/settings',
    controller: 'settings.ctrl',
    template: view
});
$urlRouterProvider.otherwise('/tm');

要点:

现在我有标题(菜单)和内容块。取决于用户在菜单settingstm模块中按哪个按钮出现在内容块中。 settingstm模块都位于不同的目录中(不同的模块)。

问题: Menu html和settingstm块(<div ui-view></div>)的容器位于一个HTML文件中。我想将menu分成不同的模块(如settingstm分开的模块)。

我想要的是什么:

主模块就像(查看伪代码):

<container for menu>
<container for content>

菜单将位于目录menu中,并且会有文件menu.htmlmenu.ctrl.js。它将“注入”容器“菜单容器”。 tmsettings已经在正确的目录中,并拥有自己的视图和控制器。

整个代码为here

PS。其中一项预期成果是:

<menu-component></menu-component>

<div class="container">
    <!-- Main component for a primary marketing message or call to action -->
    <div class="jumbotron" ui-view>
        <div class="main-viewer">
            Welcome page
        </div>
    </div>
</div> <!-- /container -->

现在菜单逻辑位于分离的控制器中,视图位于单独的html中。

0 个答案:

没有答案