每当我们加载.html
文件时,角度为某个控制器提供服务。
angular
是否ajax
拨打html
。
喜欢这段代码。
.state('home', {
url: '/',
templateUrl: '/Modules/Signin/signin.html',
controller: 'SigninCtrl'
})
我的意思是在提取signin.html时询问
ajax
来电吗? ajax
电话,我可以在哪里找到一些关于它的文件。答案 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 - 您可以在浏览器的开发工具中看到这一点。