0

Yo каждый.Angularjs маршрутизации без хеша с несколькими var

Я искал, как удалить хэш (#) из маршрутизации (источник: AngularJS routing without the hash '#'), но я столкнулся с проблемой.

Я объясню.

$locationProvider.html5Mode(true); 
$routeProvider 
.when('/test', { 
    controller: TestCtrl, 
    templateUrl: 'test.html' 
}) 
.when ('/test/:idPage', { 
    controller: PageCtrl, 
    templateUrl: 'page.html' 
}) 
.otherwise({ redirectTo: '/test' }); 

Для первого перенаправления
- У меня есть что-то вроде: www.my-website.com/test
все работает нормально.
Для второго:
- www.my-website.com/test/hello
и здесь, есть вероятностный, когда я кладу больше, чем один «/» в маршруте, страница не загружается и у меня есть два

Не удалось загрузить ресурс: сервер ответил со статусом 404 (Не найдено)

в моей консоли.
Один называется: www.my-website.com/test/page.html и другое: www.my-website.com/test/hello

Надежда кто-то может мне помочь. Заранее спасибо.

ответ

0

Угловая 1.4.x требует, чтобы 'ngRoute' быть включены в модуль, чтобы использовать $routeProvider и $locationProvider так включить его в качестве <script...>:

Я предполагаю, что вы видите, что-то вроде:

enter image description here enter image description here

Чтобы включить его в вашем модуле:

var app = angular.module('someModule', ['ngRoute']); 

И контроллер должен быть в кавычках controller: 'someCtrl', как:

$locationProvider.html5Mode(true); 
$routeProvider 
.when('/test', { 
    controller: 'TestCtrl', 
    templateUrl: 'test.html' 
}) 
.when ('/test/:idPage', { 
    controller: 'PageCtrl', 
    templateUrl: 'page.html' 
}) 
.otherwise({ redirectTo: '/test' }); 

Вот пример, который я поставил вместе: http://plnkr.co/edit/wyFNoh?p=preview

var app = angular.module('plunker', ['ngRoute']); 

app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { 
     $routeProvider 
      .when('/hello/:idHere', { 
      templateUrl: 'resolveView.html', 
      controller: 'helloCtrl', 
      resolve: { 
       exclamVal: function(){ 
       return '!!!!!!!!!!' 
       } 
      } 
      }) 
      .when('/default', { 
      templateUrl: 'default.html', 
      controller: 'defaultCtrl' 
      }) 
      .when('/test', { 
      controller: 'testCtrl', 
      templateUrl: 'test.html' 
      }) 
      .otherwise({ redirectTo: '/default' }); 
      $locationProvider.html5Mode(true); 
    }]); 

app.controller('MainCtrl', function($scope, $location, $routeParams) { 
}); 
app.controller('testCtrl', function($scope, $routeParams) { 
    console.log('hi') 
}); 
app.controller('defaultCtrl', function($scope, $routeParams) { 
    console.log('Inside defaultCtrl') 
}); 

app.controller('helloCtrl', function($scope, exclamVal, $routeParams) { 
    $scope.exclamVal = exclamVal; 
    $scope.myVar = $routeParams.idHere; 
});