Angular dart эквивалент anuglar js В противном случае для маршрутизации

Мне было довольно удобно настраивать маршрут в Angular.dart с помощью RouteInitializerFn

Но мне не удалось настроить маршрут «404». То есть, когда пользователь посещает несоответствующий маршрут, он должен быть перенаправлен на страницу 404.html.

  myRouter(Router router, ViewFactory view) {
    view.configure({
      'home' : ngRoute(      
        defaultRoute : true,
        view : './home.html' // visiting www.mysite.com will load this view
      ),
      'user' : ngRoute(
        path : '/user',
        view : './user.html'
      ),
      'every-other-route' : ngRoute(
        path : '*', // apparently wildcard route matching doesn't work in angular
        view : '404.html'
      )

Есть идеи найти любой другой способ загрузки страницы 404.html?


person nobody    schedule 10.03.2014    source источник


Ответы (1)


Маршрут, для которого defaultRoute задано значение true (если есть), будет соответствовать, если другие шаблоны не совпадают.

В вашей ситуации вам нужно переместить свойство defaultRoute из «домашнего» маршрута в маршрут «каждый второй маршрут» и удалить путь с подстановочными знаками из «любого другого маршрута» и, вероятно, дать домашнему маршруту дорожка.

В результате у вас должно получиться что-то вроде:

myRouter(Router router, ViewFactory view) {
  view.configure({
    'home' : ngRoute(
       path: '/',
       view : './home.html' // visiting www.mysite.com will load this view
    ),
    'user' : ngRoute(
      path : '/user',
      view : './user.html'
    ),
    'every-other-route' : ngRoute(
      defaultRoute: true
      view : '404.html'
    )
  });
}
person mthjones    schedule 10.03.2014
comment
Единственная проблема с использованием '/' в качестве домашнего пути заключается в том, что он не будет работать без pushState, у меня эта строка является частью настройки модуля angular value(NgRoutingUsePushState, new NgRoutingUsePushState.value(false)); - person nobody; 10.03.2014