AngularJS — изменить templateUrl, если routeprovider начинается с определенного текста

#angularjs #angularjs-routing

#angularjs #angularjs-маршрутизация

Вопрос:

У меня есть этот код:

     var app = angular.module('TabsApplication', ['ngRoute'])
     .config(['$routeProvider', function($routeProvider) {
        $routeProvider
         .when('/search', {
          templateUrl: 'search.html',
          controller: 'SearchController'
        })
        .otherwise({
          redirectTo: '/home'
        });
    }])
 

Прямо сейчас я перехожу к http://myapp.com/#/search , он будет отображать search.html . Я хочу, чтобы, если я перейду к http://myapp.com/#/search?search1=1amp;search2=2 , он также будет отображать search.html .

Если я использую '/search*' , он перенаправит на home, если я введу http://myapp.com/#/search , но если я наберу http://myapp.com/#/search *, он покажет search.html .

Есть ли способ сделать это? Я использую AngularJS версии 1.2.9.

Комментарии:

1. Параметры запроса должны просто работать /search .

Ответ №1:

enter code here var app = angular.module(‘TabsApplication’, [‘ngRoute’]) .config([‘$routeProvider’, функция($routeProvider) { $routeProvider

      .when("/search", {
      templateUrl: 'html/somepath/search.html'
      controller: 'SearchController'
    })
    .otherwise({
      redirectTo: '/home'
    });
}])`enter code here`
 

Комментарии:

1. Я рекомендую вам использовать абсолютный путь вместо относительного пути к вашему templateUrl,