【问题标题】:AngularJs(1.x) routing problem in ngRoute?ngRoute 中的 AngularJs(1.x) 路由问题?
【发布时间】:2019-03-31 20:03:49
【问题描述】:

这是酒店的链接

<ul>
  <li ng-repeat="hotel in vm.hotels">
     <a ng-href="#/hotel/{{ hotel._id }}">{{ hotel.name }}</a>
  </li>
</ul>

路线是这样的

angular.module('myApp', ['ngRoute']).config(config);

function config($routeProvider) {
  $routeProvider
    .when('/', {
      templateUrl: 'angular-app/hotel-list/hotels.html',
      controller: HotelsController,
      controllerAs: 'vm'
    })
    .when('/hotel/:id', {
      templateUrl: 'angular-app/hotel-display/hotel.html',
      controller: HotelController,
      controllerAs: 'vm'
    });
}

控制台没有错误,我把&lt;div ng-view&gt;&lt;/div&gt;放到了正确的地方 但它没有给我想要的东西。有什么更正吗?谢谢!

【问题讨论】:

  • 由于我们不知道您想要什么,也不知道它实际提供了什么,因此我们无法提供帮助。
  • 当我点击链接时,我希望它转到一个新的路线...但仍然在同一页面上。
  • 您检查过控制台是否有任何错误吗?如果是这样,它是什么?您是否正确配置了路由?您的模板中有 ng-view 吗?贴出所有相关信息和代码。
  • 另外,它应该是#!/ 而不是#/
  • 谢谢!问题解决了我用#!/替换了#/

标签: angularjs ngroute angularjs-1.6


【解决方案1】:

使用 AngularJS V1.6,用于$location hash-bang URL 的默认哈希前缀已从空字符串 ('') 更改为 bang ('!')。如果您的应用程序不使用 HTML5 模式或在不支持 HTML5 模式的浏览器上运行,并且您没有指定自己的哈希前缀,那么客户端 URL 现在将包含 ! 前缀。例如,URL 将变为 mydomain.com/#!/a/b/c 而不是 mydomain.com/#/a/b/c

<ul>
  <li ng-repeat="hotel in vm.hotels">
     ̶<̶a̶ ̶n̶g̶-̶h̶r̶e̶f̶=̶"̶#̶/̶h̶o̶t̶e̶l̶/̶{̶{̶ ̶h̶o̶t̶e̶l̶.̶_̶i̶d̶ ̶}̶}̶"̶>̶{̶{̶ ̶h̶o̶t̶e̶l̶.̶n̶a̶m̶e̶ ̶}̶}̶<̶/̶a̶>̶
     <a ng-href="#!/hotel/{{ hotel._id }}">{{ hotel.name }}</a>
  </li>
</ul>

欲了解更多信息,请参阅AngularJS Developer Guide - Migrating to V1.6 - $location

【讨论】:

    猜你喜欢
    • 2018-11-07
    • 2015-04-20
    • 1970-01-01
    • 2016-11-09
    • 2014-08-21
    • 2017-05-01
    • 2013-10-30
    相关资源
    最近更新 更多