我遇到了我的简单的角度应用程序的大问题。刷新页面后,所有html都丢失了!
我的问题不是关于角度数据和/或会话/本地存储数据,而只是HTML。
例如,通过导航栏“主页”按钮访问主页时,它看起来像:
轻按刷新按钮或h1标签内的f5“主页”后,将丢失:
所以问题是-我的路由配置出了什么问题,或者这可能是角度的预期行为?我一直在寻找有关此问题的很多东西,但是大多数主题都是关于将数据保存在$ localStorage或$ sessionStorage中。我所有的页面都出现此问题。
编辑
大家好,谢谢您的评论。
@devqon-我认为这里不需要locationProvider。我正在使用routeProvider。
我更改了一些路由配置:将“”替换为“”,然后在配置末尾添加else语句:
<code>
app.config(function($routeProvider, $httpProvider) {
$routeProvider.when("/", {
templateUrl : "src/html/home.html",
controller : "HeaderCtrl"
})
.when("/home", {
templateUrl : "src/html/home.html",
controller : "HomeCtrl"
})
.when("/flights", {
templateUrl : "src/html/flights.html",
controller : "FlightCtrl"
})
.when("/customers", {
templateUrl : "src/html/customers.html",
controller : "CustomerCtrl"
})
.when("/login", {
templateUrl : "src/html/login.html",
controller : "HeaderCtrl"
})
.when("/flight_choose", {
templateUrl : "src/html/flight_choose.html",
controller : "FlightChooseCtrl"
}).otherwise("/home");
$httpProvider.interceptors.push('airlinesRequestInterceptor');
});
</code>
如您所见,我已经创建了HomeCtrl,它非常简单:
<code>
app.controller('HomeCtrl', function() {});
</code>
home.html在第一个screnshot上。
@Gustavo Gabriel-您能具体一点吗? :)
前述更改未解决问题:(
编辑2
@Kai-感谢您的回复。
根据您的建议,我更改了配置,现在看起来像:
app.config(function($routeProvider, $httpProvider) { $routeProvider.when("/", { templateUrl : "src/html/home.html", controller : "HomeCtrl" }) .when("/flights", { templateUrl : "src/html/flights.html", controller : "FlightCtrl" }) .when("/customers", { templateUrl : "src/html/customers.html", controller : "CustomerCtrl" }) .when("/login", { templateUrl : "src/html/login.html", controller : "HeaderCtrl" }) .when("/flight_choose", { templateUrl : "src/html/flight_choose.html", controller : "FlightChooseCtrl" }).otherwise("/");
ojit_pre
});
我还更改了Home的导航栏链接:
问题仍然存在,所以也许我误解了您。
有任何想法吗?
提前致谢,
米哈尔
最佳答案
在路由中包含HeaderCtrl
会导致问题,因为您要为同一/ home路径指定两个控制器。将controller
的.when ("/"
更改为HomeCtrl
,只需在HTML中将Header的HeaderCtrl
指定为属性ng-controller="HeaderCtrl"
。我以前犯过同样的错误。