2016-07-01 9 views
4

Я создал образец plunker, чтобы передать несколько параметров на следующую страницу, и это не сработает. Вот демонстрация плункера, когда маршрутизация критического центра не работает после нажатия на элементы.Угловой 2 Маршрутизатор, не работающий с несколькими параметрами, прошел

http://plnkr.co/edit/ngNSsKBzAuhaP0EjKVJX?p=preview

onSelect(crisis: Crisis) { 
    // Navigate with Absolute link 
    //this.router.navigate(['/crisis-center', 1]); //this is working. 
    this.router.navigate(['/crisis-center', { id: '1', id2:'2'}]); //this is not working 
    } 

// приведенный ниже маршруты:

//{ path: 'crisis-center/:id', component: CrisisDetailComponent } //-- this is working 
    { path: 'crisis-center/:id /:id2', component: CrisisDetailComponent}, // this is not working 

ngOnInit() { 
    this.sub = this.route 
     .params 
     .subscribe(params => { 
     let id = +params['id']; 
     let id2 = +params['id2']; //Unable to read id and id2 values 
     this.service.getCrisis(id) 
      .then(crisis => { 
      if (crisis) { 
       this.editName = crisis.name; 
       this.crisis = crisis; 
      } else { // id not found 
       this.gotoCrises(); 
      } 
      }); 
     }); 
    } 

У меня есть три многоуровневой навигации, где она переходит из кризисного центра к кризисной-детали, а затем из-crisi деталей -> transactiondetail. Поэтому, после того, как я перейду к деталям кризиса, я хочу перейти к кризису и кризису, чтобы вернуться к деталям, а затем к кризису.

Я пытаюсь передать несколько параметров здесь, у кого была эта проблема?

Кроме того, я хочу скрыть параметр URL из URL-адреса браузера и показать псевдоним, ранее ключевое слово «как» использовалось для работы, теперь оно не работает.

Любая помощь оценили

+0

попытаться назвать ваш второй параметр нечто совершенно иное, как «имя» вместо «id2» –

+0

@JarodMoser это Безразлично Я работаю, я переименовал id2, чтобы назвать. Я предоставил плункер, если возможно, попробуйте отредактировать его и посмотреть, работает ли он. Спасибо за ответ. –

+0

Извините за ответ на коленный рефлекс, у меня были некоторые проблемы, прежде чем именовать параметры так близко друг к другу ... @maxisam нашел ошибку для вас –

ответ

4

У вас есть пространство между в crisis-center/:id /:id2

здесь является working plunker

+0

Большое спасибо, как я могу скрыть идентификаторы, появляющиеся в браузере urlI хотите использовать псевдоним вместо фактического URL с идентификатором, появляющимся в URL-адресе браузера. Ключевое слово Earlies 'as' и IsProd для работы теперь не работает. Можете ли вы предложить решение оценить это. –

+0

извините, я не знаю, но я думаю, вы должны начать другой вопрос для этого, так что вы можете заставить людей помочь вам. – maxisam

6

Использование компонента Router (от @ угловую/маршрутизатор ', а не от " @ угловой/роутер-устаревший '), вы передаете несколько параметров следующим образом:

this.router.navigate(['/crisis-center', 1, 2]); 

Вы пытались это сделать:

this.router.navigate(['/crisis-center', { id: '1', id2:'2'}]); //this is not working 

Поскольку вы прошли объект в качестве второго аргумента, вы передавая параметры запроса не маршрутизатор параметров. Таким образом, URL для него является:

localhost:3000/crisis-center;id=1&id2=2 

Вы можете прочитать об этом здесь: https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters

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