【问题标题】:angularjs route is changing my urlangularjs 路线正在改变我的网址
【发布时间】:2017-02-16 17:01:07
【问题描述】:

我似乎无法让我的路线运行......

如果我转到:http://localhost:8000/#/notes,它会将我的网址更改为:http://localhost:8000/#!#%2Fnotes。这也不起作用:http://localhost:8000/#!#notes

运行 angularjs 1.6 和 route 1.6。我也在使用 gulp 网络服务器。

routes.js:

angular.module('NoteWrangler').config(function($routeProvider){

  $routeProvider.when('/notes', {
    templateUrl: '/templates/pages/notes/index.html'
  })

});

index.html:

<div class="wrapper">
   <div ng-view>
   </div>
</div>
<script src="/node_modules/jquery/dist/jquery.js" charset="utf-8"></script>
<script src="/node_modules/angular/angular.js" charset="utf-8"></script>
<script src="/node_modules/angular-route/angular-route.js" charset="utf-8"></script>
<script src="app.js"></script>
<script src="routes.js"></script>   

gulpFile.js

var gulp = require('gulp');
var webserver = require('gulp-webserver');

gulp.task('webserver', function() {
  gulp.src('./')
    .pipe(webserver({
      livereload: true,
      open: true
    }));
});

【问题讨论】:

标签: angularjs


【解决方案1】:

您做对了,但在 angular 1.6.x 中为 $locationProvider 引入了更改。在此版本之前,hashprefix 的默认值为空 '',但现在为 '!'。

查看https://docs.angularjs.org/api/ng/provider/$locationProvider

https://code.angularjs.org/1.5.11/docs/api/ng/provider/$locationProvider

因此修改您的route.js 如下

angular.module('NoteWrangler').config(function($routeProvider, $locationProvider) {
  $locationProvider.hashPrefix('');
  //$locationProvider.html5Mode(false); 
  //false is default therefore it is not required to set
  $routeProvider.when('/notes', {
    templateUrl: '/templates/pages/notes/index.html'
  })

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2018-11-29
    • 2020-08-13
    • 1970-01-01
    相关资源
    最近更新 更多