angularjs - 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>
先感谢您!
解决方案
当您使用 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 -你应该使用路由指令。从这些指令中,您可以导航到不同的页面,而无需再次重新加载页面。
推荐阅读
- laravel - laravel 中的 hasMany 和 belongsTo
- html - html 不会转到 css,因此不会改变颜色
- java - 从漫画适配器中的 Activity 外部调用 startActivity() 如何解决这个问题
- audio - 如何将linear16文本到语音转换为音频文件
- mysql - Bigquery 表潜在客户列值基于日期
- c++ - 如何扫描用户输入并将其切成c ++中的块?
- hyperledger-fabric - 使用超级账本作曲家启动 REST 服务器时出现问题
- mysql - 将带有月份名称的mysql数据迁移到新结构
- c++ - 返回右值或左值
- php - 结合两种不同的日期重新格式化