2016-08-21 2 views
3

В-приложение NativeScript У меня есть два пути, как показано ниже:параметры Пасс между маршрутами в nativesscript

{ path : "boxes" , component : BoxesPage } , 
{ path : "card" , component : CardPage } , 

В BoxesPage я стараюсь передать то CardPage как это:

constructor (private _routerExtention : RouterExtensions , private _router : Router) { 
    } 

onItemTap (_box) { 
     let navigationExtras : NavigationExtras = { 
      queryParams : { 'box' : _box } , 
      fragment : 'anchor' 
     }; 
     this._router.navigate([ '/card' ] , navigationExtras); 
    } 

Тогда в компоненте CardPage:

ngOnInit() : any { 
     this.route.params.subscribe((_box : Box) => { 

       console.log(_box); //undefined or {} 

     }); 
     return undefined; 
    } 

Вопрос:

Правильно ли это?

Как я могу получить свой объект box внутри CardPage?

Стоит упомянуть, что я использую Angular2 с NativScript.

Я пробовал все, кроме документации, к сожалению, очень плохо.

Заранее спасибо.

+0

Вы пытались использовать параметры маршрута, как описано в документах angular2? https://angular.io/docs/ts/latest/guide/router.html#!#configuration Примечание: {путь: "box /: boxId", компонент: BoxesPage}, – scottmgerstl

ответ

0

Вы можете сослаться на мой ответ в этом же сообщении: NativeScript + Angular Navigation context. В основном вы делаете это с помощью «аргументов маршрута», которые являются строками. К сожалению, вы не можете передавать «целые» объекты JS/TS, но вы можете реализовать службу, которая может получить их через предоставленные строковые аргументы. Для деталей икры и фрагментов кода проверяйте мой ответ в другом потоке.

Вот краткое введение, если другой поток:

Передачи объектов во время навигации в угловом + NativeScript не то же самое, как ванильный NativeScript. Маршрутизация полностью реализована с помощью угловых спецификаций, что означает, что вам нужно будет использовать их реализацию. Текущая версия RC5 версии Angular 2 использует следующую навигацию (маршрутизацию).

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