javascript - AngularJS - 刷新页面后丢失html

标签 javascript html angularjs ngroute

我的简单 Angular 应用程序遇到了大问题。刷新页面后,所有html都丢失了!
我的问题不在于 Angular 数据和/或 session /本地存储数据,而在于 HTML。
例如,当通过导航栏“主页”按钮访问主页时,它看起来像: enter image description here

点击刷新按钮或 f5 h1 标签内的“主页”后丢失: enter image description here

所以问题是 - 我的路由配置有什么问题,或者这可能是 Angular 的预期行为?我对这个问题进行了很多研究,但大多数主题都是关于在 $localStorage 或 $sessionStorage 中保存数据。我的所有页面都会出现此问题。

编辑 大家好,感谢您的评论。

@devqon - 我认为这里不需要 locationProvider 。我正在使用路线提供者。 我更改了一点路由配置:将 '' 替换为 ""并将 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 位于第一个屏幕截图上。 @Gustavo Gabriel - 你能说得更具体一些吗? :) 上述更改并没有解决问题:(

编辑2

@Kai - 感谢您的回复。 根据您的建议,我更改了配置,现在看起来像: app.config(函数($routeProvider, $httpProvider) { $routeProvider.when("/", { templateUrl : "src/html/home.html", Controller :“HomeCtrl” }) .when("/航类", { templateUrl : "src/html/flights.html", Controller :“FlightCtrl” }) .when("/客户", { templateUrl : "src/html/customers.html", Controller :“CustomerCtrl” }) .when("/登录", { templateUrl : "src/html/login.html", Controller :“标题Ctrl” }) .when("/flight_choose", { templateUrl : "src/html/flight_choose.html", Controller :“FlightChooseCtrl” }).otherwise("/");

$httpProvider.interceptors.push('airlinesRequestInterceptor');

}); 我还更改了主页的导航栏链接: enter image description here 问题仍然出现,所以也许我误解了你。 有任何想法吗?

提前致谢, 米哈尔

最佳答案

您在路由中包含 HeaderCtrl 会导致问题,因为您为同一/home 路径指定了两个 Controller 。将 .when ("/") 的 controller 更改为 HomeCtrl,然后在 HTML 中指定 HeaderCtrl将 Header 作为属性,ng-controller="HeaderCtrl"。我以前也犯过同样的错误。

关于javascript - AngularJS - 刷新页面后丢失html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40341258/

相关文章:

javascript - 通过 Thunderbird 扩展进行文件系统操作

javascript - 将下载的 JS 文件添加到 WordPress

html - 包含 iframe 的页面中的选项卡(键盘)导航

html - IE9 和 :after/:hover Css property causing page to grow

angularjs - 如何刷新 iframe 网址?

javascript - 诗乃找不到方法 'spy'

javascript - 窗口消息事件有时触发不止一次

html - 我怎样才能让一些文本用 CSS 覆盖边框?

angularjs - 致命的 : in unpopulated submodule

angularjs - 使用适用于 Visual Studio 的 Angular 和 NodeJS 工具构建 NodeJS 应用程序