加载角度视图

时间:2015-12-17 10:42:40

标签: javascript angularjs ajax angular-routing ng-view

每当我们加载.html文件时,角度为某个控制器提供服务。 angular是否ajax拨打html

喜欢这段代码。

 .state('home', {
              url: '/',
              templateUrl: '/Modules/Signin/signin.html',
              controller: 'SigninCtrl'
          })

我的意思是在提取signin.html时询问

  • ajax来电吗?
  • 或者它们是否作为普通资源加载?
  • 如果发出ajax电话,我可以在哪里找到一些关于它的文件。

3 个答案:

答案 0 :(得分:2)

当您执行该代码时,Angular首先使用$templateCache id/Modules/Signin/signin.html中查找HTML模板。

如果在$templateCache中没有找到,那么 Angular会使用AJAX进行$http来获取HTML内容和< strong>它将作为普通资源加载,它应位于以下网址:

http://example.com/Modules/Signin/signin.html

您可以在浏览器的开发人员控制台中验证是否已执行AJAX调用。

详细了解$templateCache

基本上,当每个模板都没有存储在缓存中时,它们会存储在$templateCache中。因此,如果您在index.html或任何地方(例如安装angular的位置)定义以下内容:

<script type="text/ng-template" id="/Modules/Signin/signin.html">
  <p>This is the content of the template</p>
</script>

现在作为您的Angular引导,$templateCache中的数据会有/Modules/Signin/signin.html,所以现在您的state代码不会生成任何AJAX而只会加载定义的内容上方。

答案 1 :(得分:1)

当我查看自己的项目时,我想打电话了。你有检查元素  网络选项卡,当您重新加载时,您可以看到每个html部分都单独加载

答案 2 :(得分:1)

至少在ui-router中(假设视图不在templateCache中)视图使用GET将HTML文件检索到文件的URL,而不是使用对端点的AJAX调用。在您的情况下,它是<your root URL>/Modules/Signin/signin.html的GET - 您可以在浏览器的开发工具中看到这一点。