【问题标题】:AngularJS $routeProvider not displaying viewAngularJS $routeProvider 不显示视图
【发布时间】:2015-11-19 00:48:52
【问题描述】:

基本上,当我在浏览器中导航到 http://localhost:9000 时,我会在 index.html 页面上收到内容,但 ng-view 仍然完全为空,尽管 '/' 被指向我的控制器/视图。

在第一次导航时,Angular /#/ 添加到我的网址,$location.path() 读取一个空字符串。单击任何链接后,例如关于页面,Angular 将 /#/about 添加到我的 url 并且页面正常加载。但是,如果由于任何原因页面被重新加载(我点击重新加载或实时重新加载更新),/#/about 仍保留在 url 中,但 ng-view 是一个空元素。

配置:

.config(function ($routeProvider) {
  $routeProvider
    .when('/', {
      templateUrl: 'views/main.html',
      controller: 'MainCtrl'
    })
    .when('/about', {
      templateUrl: 'views/about.html',
      controller: 'AboutCtrl'
    })
    .otherwise({
      redirectTo: '/'
    });
})

我在应用程序中添加了ngRoute并且脚本已添加到索引中。

这个应用之前运行良好。我对$locationProvider.html5Mode() 做了一些试验,结果不喜欢,所以我对 git HEAD 进行了硬重置。之后,它在任何机器、任何浏览器上都无法按预期工作。

我不知道是什么原因造成的,或者还需要什么来解决这个问题。打开以尝试此时有效的任何方法。

编辑: StackOverflow 设法删除了我的部分标题。 .-.

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    我认为您应该能够在 app.run 中调用 $location.path('/') 以便在 angular 加载后进行导航。

    【讨论】:

    • 虽然 视觉上/#/ 添加到 url,但在重新加载或第一次导航后仍不显示视图。
    【解决方案2】:

    经过大量挖掘、其他人以及反复试验/错误后才弄清楚。

    如果$scope.apply() 被提前调用,它可以取消在页面加载时触发的消化。在方法上使用$timeout 解决了它。

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 2013-09-16
      • 2016-12-28
      • 2023-03-04
      • 2017-04-25
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多