2015-09-10 4 views
0

В моем приложении у меня есть searchformula с динамическими полями ввода. Форма затем приводит к следующему URL-адресу:Ember.js Маршрут с поисковыми причинами: UnrecognizedURLError

/trefferliste/?modulId=1&modus=dokument&identnummer=XXX 

мое определение маршрута:

this.resource('trefferliste', { 'path' : 'trefferliste/:query' }); 

до этого момента он работает, но когда я обновить страницу он говорит: UnrecognizedURLError

в trefferliste route Я загрузите следующие данные:

return this.store.find('trefferliste', params.query); 

Я понял, что "?" вызывает проблему, но мне она нужна для моего поиска в магазине. Итак, может кто-нибудь сказать мне, как определить мой маршрут?

UPDATE: Вот jsbin: http://emberjs.jsbin.com/nesehuxugi

Шаги для воспроизведения ошибки:

Нажмите на кнопку> затем обновите страницу и посмотреть в консоли!

некоторые дополнительные сведения:

DEBUG: Ember  : 1.12.1 
ember-template-compiler.js:163 DEBUG: Ember Data : 1.0.0-beta.17 
ember-template-compiler.js:163 DEBUG: jQuery  : 1.11.2 
+0

Можете ли вы настроить демо на emberjs.jsbin.com или ember-twiddle.com? –

+0

Вот jsbin: http://emberjs.jsbin.com/nesehuxugi Нажмите кнопку, посмотрите URL, а затем обновите страницу. Посмотрите в консоль, и вы увидите ошибку! – Jan

+0

Я скоро дам вам ответ. –

ответ

1

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

URL-адрес: http://app.com#/trefferliste?query=%3FmodulId%3D1%26modus%3Ddokument%26identnummer%3DXXX, но вы должны соблюдать соглашения Ember.js и глобальные URL-адреса.

Working demo.

Код:

App = Ember.Application.create(); 

App.Router.map(function() { 
    this.resource('trefferliste'); 
}); 

App.IndexRoute = Ember.Route.extend({ 
    model: function() { 
    return ['red', 'yellow', 'blue']; 
    } 
}); 

App.TrefferlisteController = Ember.Controller.extend({ 
    queryParams: ['query'], 
    query: null 
}); 

App.IndexController = Ember.ObjectController.extend({ 
    actions: { 
    suche: function() { 
     var query = "?modulId=1&modus=dokument&identnummer=XXX"; 
     this.transitionTo('trefferliste', { queryParams: { query: query } }); 
    } 
    } 
}); 
+0

привет, даниэль, я попробую это завтра! спасибо и с наилучшими пожеланиями rocki – Jan

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