【问题标题】:Routing issue in Angular (happening a "!" in URL)Angular 中的路由问题(在 URL 中出现“!”)
【发布时间】:2017-09-26 07:37:06
【问题描述】:

我正在使用 Angular ngRoute

当我尝试路由到另一个页面时,它不会在 URL 中重定向。它显示为http://localhost:58317/#!#%2Fstudents

myApp.js

var app = angular.module('MyApp', ['googlechart', 'ngRoute'])
app.controller('HomeCtrl', function ($scope) {
    $scope.msg = "Hello Angular.....";
})

app.config(function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(false);
    $locationProvider.hashPrefix("!");
    $routeProvider.when("/home", {
        templateUrl: '/Home/part1',
        controller: 'routeDemoFirstController'
    }).
    when('/contact', {
        templateUrl: '/Home/part2',
        controller: 'routeDemoSecondController'
    }).
     when('/students', {
         templateUrl: '/Home/part2',
         controller: 'routeDemoSecondController'
     })
})

Index.cshtml 这是我的 .cshtml 代码在这里我写锚标记

<div class="row">
    <div>
        <a href="/#/home">Home</a>
        <a href="#/contact">Courses</a>
        <a href="#/students">Students</a>
    </div>
    <ng-view></ng-view>
</div>

【问题讨论】:

    标签: javascript angularjs angular-routing ngroute


    【解决方案1】:

    删除

    $locationProvider.hashPrefix("!");
    

    对html进行修改

    <div class="row">
            <div>
                <a ng-href="#!/home">Home</a>
                <a ng-href="#!/contact">Courses</a>
                <a ng-href="#!/students">Students</a>
            </div>
            <ng-view></ng-view>
        </div>
    

    【讨论】:

      【解决方案2】:

      您正在使用 hash-bang 前缀:

      $locationProvider.hashPrefix("!");
      

      这表示您的网址应该是:

      <a href="#!/home">Home</a>
      

      如果您想从 URL 中删除 !您也可以删除 #),您可以检查 this answer

      【讨论】:

      • 非常感谢亲爱的 Mistails
      猜你喜欢
      • 2017-02-10
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多