2017-02-16 5 views
0

я не могу показаться, чтобы получить мой маршрут работает ...angularjs маршрут меняет URL

Если я иду: http://localhost:8000/#/notes, он меняет свой адрес на: http://localhost:8000/#!#%2Fnotes. Это также не работает: http://localhost:8000/#!#notes.

Запуск angularjs 1.6 и маршрут 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 
    })); 
}); 
+2

только предложение, пожалуйста, используйте UI-маршрутизатор. – pranavjindal999

+0

Я предполагаю, что ваша проблема такая же, как у этого http://stackoverflow.com/questions/41211875/angularjs-1-6-0-latest-now-routes-not-working – Callum

+1

Возможный дубликат [angularjs 1.6.0 (последние сейчас) маршруты не работают] (http://stackoverflow.com/questions/41211875/angularjs-1-6-0-latest-now-routes-not-working) – Callum

ответ

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' 
 
    }) 
 

 
});

Смежные вопросы