[英]Loading Angular View
每当我们加载.html
文件以某种角度服务于某些控制器时。 angular
是否进行了ajax
调用来检索该html
。
就像这段代码。
.state('home', {
url: '/',
templateUrl: '/Modules/Signin/signin.html',
controller: 'SigninCtrl'
})
我的意思是在获取signin.html时问
ajax
调用? ajax
调用,我在哪里可以找到有关它的书面文档。 当您执行该代码时,Angular首先在$templateCache
查找id
/Modules/Signin/signin.html
的HTML模板。
如果在$templateCache
找不到它,那么Angular将使用$http
进行AJAX
调用以获取HTML内容 , 并将其作为常规资源加载,该资源应位于URL处,例如:
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
中将有一个ID为/Modules/Signin/signin.html
的数据,因此现在您的state
代码将不会生成任何AJAX,而只会加载上面定义的内容。
当我查看自己的项目时,我认为已经接到电话了。 您在inspect元素的network标签中,重新加载时可以看到每个html部件均单独加载
至少在ui-router
中(假定视图不在templateCache中),将使用GET检索HTML文件,而不是使用对端点的AJAX调用来检索HTML文件。 在您的情况下,它是<your root URL>/Modules/Signin/signin.html
您可以在浏览器的开发工具中看到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.