首页 > 解决方案 > AngularJS 中的双重 ng-view/ui-view,有可能吗?

问题描述

我正在开发一个带有 MEAN 堆栈的应用程序......问题是......

如何划分我的应用程序的界面?

我有一个静态页面(这样的网页)和一个应用程序页面,界面不同但我遵循的开发是......

在我的应用程序的文件“index.js”中,我放置了所有依赖项并设置了 . 在这个文件中,我设置了静态页面的页眉和页脚,以免在所有 html 文件中重复。当我在静态页面上方导航时它正在工作,但是当我开发应用程序页面时,我想更改主界面。

那么,我必须重复代码吗?或者我可以设置像 ng-show 这样的指令来在每种情况下显示每个界面吗?

在那里,我向您展示了我的应用程序的模型:

静态: 静态页面 应用: 申请页面

我的“index.js”文件的主体目标:

<body>

    <script>
            $(document).ready(function(){
                $('.button-collapse').sideNav();
            });
        </script>
    <!-- The var changeInterface control if we are on main page or app page-->
    <header>
            <nav class="dipu-green">
                <div class="nav-wrapper container" role="navigation">
                    <a id="logo-container" href="#" ui-sref="/()" class="" style="color:white" >
                        <b>R.U. Pino Montano</b>
                    </a>
                    <ul class="right hide-on-med-and-down">
                        <li>
                            <a href="#!/" style="color:white" >Inicio</a>
                        </li>
                        <!--data-activates="reportsDropdown"  dropdown-button -->
                        <li>
                            <a href="#!/news" style="color:white">
                                Noticias</a>
                        </li>
                        <li>
                            <a href="#!/info" style="color:white">
                                Información</a>
                        </li>
                        <li>
                            <a href="#!/team" style="color:white">
                                Equipo</a>
                        </li>

                        <li>
                            <a href="#!/services" style="color:white">
                                Servicios</a>
                        </li>
                        <li>
                            <a href="#!/contact" style="color:white">
                                Contacto</a>
                        </li>
                        <li>
                            <a href="#!/app" style="color:white">
                                Resi App</a>
                        </li>
                    </ul>
                    <ul id="nav-mobile" class="side-nav">
                        <li>
                            <a href="#!/">
                                <i class="material-icons">mood</i>Inicio</a>
                        </li>
                        <!--data-activates="reportsDropdown"  dropdown-button -->
                        <li>
                            <a href="#!/news">
                                <i class="material-icons">new_releases</i>Noticias</a>
                        </li>
                        <li>
                            <a href="#!/info">
                                <i class="material-icons">info</i>Información</a>
                        </li>
                        <li>
                            <a href="#!/team">
                                <i class="material-icons">people</i>Equipo</a>
                        </li>

                        <li>
                            <a href="#!/services">
                                <i class="material-icons">business</i>Servicios</a>
                        </li>
                        <li>
                            <a href="#!/contact">
                                <i class="material-icons">contact_mail</i>Contacto</a>
                        </li>
                        <li>
                            <a href="#!/app">
                                <i class="material-icons">exit_to_app</i>Resi App</a>
                        </li>
                    </ul>
                    <a href="#" data-activates="nav-mobile" style="color:white"  class="button-collapse">
                        <i class="material-icons">menu</i>
                    </a>
                </div>
            </nav>
        </header>
        <main>
            <div class="ribbon">
                <span>BETA</span>
            </div>
            <!-- el controlador se añade a una parte del body-->
                <div class="section">
                    <div ui-view></div>
                </div>
        </main>
        <footer class="page-footer dipu-green">
            <div class="container">
                <div class="row dipu-green">
                    <div class="col s12">
                        <div>
                            <h5>Contacto</h5>
                            <ul>
                                <li><i class="tiny material-icons">location_on</i> Avda. Alcalde Manuel del Valle nº 28</li>
                                <li>41008, Sevilla (España)</li>
                                <li><i class="tiny material-icons">account_balance</i> C.I.F.: XXXXX </li>
                                <li><i class="tiny material-icons">local_phone</i> Tel: XXX XXX XXX</li>
                                <li><i class="tiny material-icons">email</i> <a href="mailto:rupinomontano@gmail.com?Subject=Preguntas%20externas" target="_top">rupinomontano@gmail.com</a></li>
                                <li><i class="tiny material-icons">web</i><a href="https://rupinomontano.com" target="_blank"> rupinomontano.com</a></li>

                            </ul>
                        </div>
                    </div>
                    <div class="col s12">
                        <div>
                            <h5>Desarrollo</h5>

                        </div>
                    </div>
                    <div class="col s12">
                        <h5>Síguenos en</h5>
                        <div id="social">

                        </div>
                    </div>
                </div>
            </div>
            <div class="footer-copyright">
                <span style="margin-left:15%;">© 2018 Developed by </span>
            </div>
        </footer>

    </body>

先感谢您!

标签: angularjsnode.jsng-viewroute-provider

解决方案


当您使用 angularjs 时,您可以创建一个单页应用程序。回答你的问题

问:我必须重复代码吗?

Ans -在angularjs中你不应该重复你的代码,你在一页中维护公共部分,并且从那个页面你可以渲染到不同的页面。这是单页应用程序的美妙之处。要创建需要路由的单页应用程序。要在 Angular js 中实现路由,您可以使用 Angular 路由器包,也可以使用 UI 路由器包。

请查看角度路由器的示例: https ://www.journaldev.com/6225/angularjs-routing-example-ngroute-routeprovider

请查看 UI 路由器的示例: https ://scotch.io/tutorials/angular-routing-using-ui-router

问:我可以设置像 ng-show 这样的指令来在每种情况下显示每个界面吗?

Ans -你应该使用路由指令。从这些指令中,您可以导航到不同的页面,而无需再次重新加载页面。


推荐阅读