2015-02-22 6 views
2

Моих первые несколько дней использования Угловой Dart была восхитительной ...Debug Угловой Dart маршрутизация

... для маршрутизации, которая продолжает давать мне проблемы, за исключением. То, что я хочу это:

  • /product показать мне список продуктов
  • / быть псевдонимом/продукта (т.е./продукт представляет собой вид по умолчанию)
  • /product/:id для просмотра/редактирования одного продукт

Я бы точно сказал, в чем проблема, за исключением того, что он всегда меняется. Иногда мой взгляд не загружается вообще; прямо сейчас, я только получаю список продуктов, даже на /product/1128. Я включил ведение журнала, как описано в руководстве, и вывод на консоль для /product/1128 является:

listen ignoreClick=false 
route path=/product/1128 startingFrom=null forceReload=false 
listen on win 
newHandle for [Route: null] 

Для начала, было бы полезно знать, что означают эти сообщения консоли. Они не очень полезны для новичка, подобного мне.

Ваша помощь очень ценится!

Для справки, это мой код (различные файлы каскадных кодов для Вашего удовольствия):

void main() { 
    Logger.root.level = Level.ALL; 
    Logger.root.onRecord.listen((LogRecord r) { print(r.message); }); 

    print('main'); // my own quick-n-dirty debugging 
    applicationFactory() 
    .addModule(new ProductModule()) 
    .run(); 
} 

class ProductModule extends Module { 
    ProductModule() { 
    print('ProductModule'); // more debugging 
    bind(RouteInitializerFn, toValue: routeInitializer); 
    bind(NgRoutingUsePushState, toValue: new NgRoutingUsePushState.value(false)); 
    bind(ProductList); 
    bind(ProductEdit); 
    } 
} 

void routeInitializer(Router router, RouteViewFactory views) { 
    print('routeInitializer'); 
    views.configure({ 
    'index': ngRoute(
     path: '', 
     view: 'view/product/list.html', 
     mount: { 
     'product': ngRoute(
      path: '/product', 
      view: 'view/product/list.html', 
     mount: { 
     'product_edit': ngRoute(
      path: '/:id', 
      view: 'view/product/edit.html'), 
     }), 
    }) 
    }); 
} 

ответ

0

Я не сделал много с маршрутизацией, но, возможно, некоторые подсказки, которые могут помочь вам.

Должно быть defaultRoute: true.
Не добавляйте маршрут '', сделайте product и product_edit маршруты верхнего уровня, где product имеет набор default:true.

void routeInitializer(Router router, RouteViewFactory views) { 
    print('routeInitializer'); 
    views.configure({ 
    'product': ngRoute(
     path: '/product', 
     defaultRoute: true, 
     view: 'view/product/list.html'), 
     mount: { 
     'product_edit': ngRoute(
      path: '/:id', 
      view: 'view/product/edit.html'), 
     } 
    }); 
} 

не тестировался ...

+0

Я только что отправил почти тот же самый ответ. Кажется, это сработало! Я удалю свое предпочтение для вас. Последующий вопрос: следует ли использовать аргумент 'mount' для вставки' product_edit' в 'product'? –

+0

Вы правы, я подумал, но что-то отвлекся. –

+0

Я чувствую, что «монтировка» - это «правильная» вещь, которую нужно сделать, но вот где все мои проблемы начинаются ... –

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