我想创建一个AngularJS应用程序,该应用程序在.com之后只使用一个HTTP域。例如,这是浏览器中显示的唯一URL:
www.myapp.com
这可能吗?我需要做什么?到目前为止,我见过的所有应用程序都使用了类似的东西:
www.myapp.com/users
www.myapp.com/screen1
等
答案 0 :(得分:1)
不确定;您所需要的只是某种响应该状态的顶级应用程序状态和UI。所有ngRoute
都在幕后 - 状态只存在于您的地址栏中,并且如何响应该状态的配置存在于$routeProvider
中(反过来,实现在DOM通过ngView
指令。)
考虑这个简单的例子:
<div ng-controller="ApplicationController">
<h1>Some Pages</h1>
<ul>
<li><a href='' ng-click='setPage("page1")'>Page 1</a></li>
<li><a href='' ng-click='setPage("page2")'>Page 2</a></li>
<li><a href='' ng-click='setPage("page3")'>Page 3</a></li>
</ul>
<div ng-include="page + '.html'"></div>
</div>
app.controller('ApplicationController', function($scope) {
$scope.page = 'page1';
$scope.setPage = function(pg) {
$scope.page = pg;
}
});
你可以在这里看到这个在Plunker中工作:http://plnkr.co/edit/hpnGtMkV6V4JtPRrQmes?p=preview
单击全屏按钮,以便您可以看到地址栏(以及它不会更改的事实)。
如果不将地址栏中的应用程序状态存储在地址栏中,用户就无法轻松地在应用程序中添加书签或使用浏览器按钮前进/后退。仔细考虑您是否正在构建一个可以从此类限制中受益的应用程序。
答案 1 :(得分:0)
通常会实施路由,以使您的应用的不同部分更“可收藏”。
因此,尽管您可能拥有SPA,但您仍可能希望用户使用URL栏让他们返回应用程序的特定部分。
如果您只是创建起始页index.html,它应该可以正常工作而不指定页面名称。