Двойное ng-view / ui-view в AngularJS, возможно ли это? - PullRequest
0 голосов
/ 30 апреля 2018

Я занимаюсь разработкой приложения со стеком MEAN ... и вопрос ...

Как я могу разделить интерфейс моего приложения?

У меня есть статическая страница (такая веб-страница) и страница приложения , интерфейс другой, но развитие, за которым я следовал, это ...

В файле 'index.js' моего приложения, где я поместил все зависимости и установил. В этом файле я установил верхний и нижний колонтитулы статической страницы, чтобы они не повторялись во всех html-файлах. Он работает, когда я нахожусь выше статической страницы, но когда я разрабатываю страницу приложения, я хочу изменить основной интерфейс.

Так, я должен повторить код? или я могу установить директивы, такие как ng-show, чтобы показать каждый интерфейс в каждой ситуации?

Там я покажу вам макеты моего приложения:

Статический: static page Заявка: application page

Цель тела моего файла 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>

Заранее спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

Поскольку вы используете angularjs, вы можете создать одностраничное приложение. отвечая на ваши вопросы

В: Должен ли я повторить код?

Ans - в angularjs вы не должны повторять свой код, вы поддерживаете общую часть на одной странице, и с этой страницы вы можете отобразить ее на другой странице. в этом прелесть одностраничного приложения. Для создания одностраничного приложения вам нужна маршрутизация. для достижения маршрутизации в angular js вы можете использовать пакет angular router или пакет UI Router.

пожалуйста, проверьте этот пример для углового маршрутизатора: https://www.journaldev.com/6225/angularjs-routing-example-ngroute-routeprovider

пожалуйста, проверьте этот пример для маршрутизатора пользовательского интерфейса: https://scotch.io/tutorials/angular-routing-using-ui-router

В: Могу ли я установить директивы, такие как ng-show, для отображения каждого интерфейса в каждой ситуации?

Ans - Вы должны использовать директиву маршрутизации. Из этой директивы вы можете перейти на другую страницу без повторной загрузки страниц.

...