在AngularJS网站和API参考部分,当您单击链接、URL在地址栏中发生变化时,我知道这是由$routeProvider.when()
方法完成的,因此我称之为伪URL,因为该URL仅引用带有布局的子页面而不是整个页面,因为当您单击链接时,只将子页面加载到ng-view
中,而不是整个页面,包括页眉、页脚等(布局)。
他们可能有这样的东西:
$routeProvider
.when('/$routeProvider', {
templateUrl: '/$routeProvider',
controller: 'routeProviderCtrl',
})
当然,由html
返回的/$routeProvider
文件不包含任何关于页面布局的内容,因为它不需要。我的意思是,如果您在地址栏中输入http://www.example.com/$routeProvider
,我们将得到一个子页面模板,它最终将加载到ng-view
中。
但是,例如这个URL https://docs.angularjs.org/api/ngRoute/provider/$routeProvider,如果我们在地址栏中输入这个URL,然后按enter (发送一个GET),整个页面和所有布局特定的部分都会被加载。
我的问题是HOW?
当我们输入由AngularJS创建的URL时会发生什么?我如何处理,并决定发送整个页面或只是模板?
发布于 2015-10-23 07:37:54
非常简单: web服务器忽略了URL的细节。
无论您从docs.angularjs.org
请求什么URL,它总是会返回完全相同的引导页,其中包含页面所需的角脚本和其他资源。棱角脚本本身将检查URL,并将请求的模板/页面加载到视图中。
在命令行上玩:
$ curl https://docs.angularjs.org/ > a.html
$ curl https://docs.angularjs.org/api/ngRoute > b.html
$ diff a.html b.html
$
diff
不输出任何内容意味着这两个文件是相同的。
https://stackoverflow.com/questions/33296999
复制相似问题