2017-01-13 3 views
2

Я хотел бы открыть новую перспективу с параметрами запроса.Ember Route Query Params

Это означает, что в моем index.hbs я нажимаю кнопку, чтобы получить значение из поля ввода. После этого я открою новый маршрут в моем случае карты ракурсе с путем «/ картами» с Params запроса как

localhost:4200/map/?search=xyz 

, когда я делать в индексном контроллере:

queryparams:['location'], 
location:null, 

и в моем маршрут

actions:{ 
    search(location){ 
     this.transitionTo('map-view'); 
    } 
} 

я получаю на мой указательный URL мгновенно

/?location=xcyxyx 

, но я хочу на моей карте маршрут

localhost:4200/map/?search=xyz 

ответ

1

Определить search объект в index.js контроллер, использовать его для queryParams значение перехода на map-view маршрут.

index.hbs

{{input value=search}} 
<br /> 
<button {{action 'transitionToLocation'}}> Search</button> 

Контроллеры/index.js - см transitionToRoute

import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    search:'india', 
    actions:{ 
    transitionToLocation(){ 
     this.transitionToRoute('map-view',{queryParams: {search: this.get('search')}}); 
    } 
    } 
}); 

маршруты/карта-view.js
Определение queryParams search с refreshModel истинными, то это заставит для стрельбы beforeModel и model и afterModel крюк для search изменение свойств.

import Ember from 'ember'; 
export default Ember.Route.extend({ 
    queryParams:{search: {refreshModel:true}}, 
}); 
+0

отлично работает для меня – Fesco

0

queryparam будет «искать», так это то, что вы хотите показывать в вашем URL.

Синтаксис можно найти на: https://guides.emberjs.com/v2.10.0/routing/query-params/

Далее вниз на этой странице, это показывает, как задать параметры запроса при использовании transitionTo. Надеюсь это поможет.

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