javascript - 单页应用程序查看位置

标签 javascript html angularjs single-page-application

我认为我对 AngularJS 中的路由以及 SPA 中的路由如何工作有一个严重的误解。

我曾想过我的简单路由:

$routeProvider
   .when('/home', {
        templateUrl: 'app/views/home.html',
        controller: 'homeController'
   })
   .when('/login', {
        templateUrl: 'app/views/login.html',
        controller: 'loginController',
   })

我原以为当我进入/login时,Angular会进行一个ajax调用来获取它需要的html页面。但是,我没有看到任何通过 fiddler 进行的调用,这确实没有意义。

但我似乎无法在 Chrome 开发者工具中找到这些页面的位置,也无法通过 google 找到正确的单词组合来获得合适的答案。有人可以帮我解决这个问题吗?

如果有帮助,这是我的布局页面的正文:

<body ng-cloak>

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
    ...nav stuff
</nav>

<br/><br/>

<div class="container body-content" ng-view></div>

<!-- 3rd party scripts -->
<script src="Scripts/angular.js"></script>
<script src="Scripts/angular-local-storage.min.js"></script>
<script src="Scripts/jquery-2.1.1.min.js"></script>
<script src="Scripts/bootstrap.min.js"></script>
<script src="Scripts/angular-route.min.js"></script>
<!-- app main -->
<script src="app/app.js"></script>
<!-- controllers -->
<script src="app/controllers/homeControllers.js"></script>
<script src="app/controllers/loginController.js"></script>
<!-- services -->
<script src="app/services/modelErrorService.js"></script>
<script src="app/services/authInterceptorService.js"></script>
<script src="app/services/authService.js"></script>
</body>

编辑

抱歉,我可能不清楚。该代码运行良好。我的问题是,当 Angular 将您路由到新页面时,它从哪里加载该 html 模板?是一开始就全部传递给客户端,还是回调给服务器?如果在客户端,存储在哪里?

最佳答案

如果templateUrl指定后,Angular 将查看 $templateCache查找模板并从那里加载它(如果找到)。如果没有找到,它将尝试从服务器获取它,并将其存储在 $templateCache 中。以便将来访问并将其加载到 View 中。

模板可以放入Angular的$templateCache

  1. 第一次从服务器获取时
  2. 将它们放置在 HTML 中的 <script type="text/ng-template"></script> 中元素
  3. 通过编程方式将它们放入 $templateCahce (出于任何原因:性能、离线访问等)

关于javascript - 单页应用程序查看位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677408/

相关文章:

javascript - 为什么要从标签名称中删除空格?

javascript - 使用循环将两个字符串字符排列成一个字符串

JavaScript 切换 div

javascript - Protractor js 测试工作流程

javascript - 有 promise 的 Angularjs 单元测试服务

javascript - 在 ngRepeat 中使用 Angular 动态改变元素颜色

javascript - fancybox终止加载后如何调用javascript函数

javascript - jQuery - 从 JSON Stringify 获取值

javascript - 在 Javascript 中更新多个 id

html - 样式化 HTML 电子邮件