我似乎无法让我的路线运行......
如果我转到:http://localhost:8000/#/notes,则会将我的网址更改为:http://localhost:8000/#!#%2Fnotes。这也不起作用:http://localhost:8000/#!#notes。
运行angularjs 1.6和路线1.6。我也在使用gulp webserver。
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
}));
});
答案 0 :(得分: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'
})
});