2012-12-06 41 views
0

反序列化我有一個路由器,看起來像這樣:使用Ember.NoneLocation同時仍然使用路由器在UIWebView的

App.Router = Em.Router.extend({ 
    enableLogging: true, 
    root: Em.Route.extend({ 
    index: Em.Route.extend({ 
     route:'/', 
     connectOutlets: function(router, context){ 
     router.get('applicationController').connectOutlet('textChallenge', App.TextChallenge.find()); 
     } 
    }), 

    textChallenge: Em.Route.extend({ 
     route:'/textChallenge/:challengeId', 
     connectOutlets: function(router, context){ 
     router.get('applicationController').connectOutlet('textChallenge', context); 
     }, 
     //this doesn't really work yet 
     serialize: function(router, context){ 
     return{ 
      challengeId: context.get('challengeId') 
     } 
     }, 
     deserialize: function(router, urlParams){ 
     return App.TextChallenge.find(urlParams.challengeId); 
     } 
    }) 
    }) 
}); 

不過,我試圖在UIWebView中運行這個,它不喜歡的網址被混淆(見本問題:https://github.com/emberjs/ember.js/issues/1575)。我只是不太明白如何在這裏實現Ember.NoneLocation。有什麼想法嗎?

回答

3

我相信這麼簡單的路由器location: 'none'

+0

所以那會是每條路線的設置上設置屬性?或者對於整個路由器對象?嘿,謝謝你回覆我的票後在這裏見到我:)我相信我在這一刻欠你一杯啤酒。 – jasongonzales

+0

這對路由器對象來說是全局的。我建議讀取Router的源代碼,以及每個Location實現。它會幫助你理解這一切是如何運作的。而且,沒問題。我喜歡比利時釀造。 :-) –

+0

嗯,看起來我誤解了一些關於它是如何工作的。有沒有可能在路由器級別設置它,但仍然可以反序列化URL?我也喜歡比利時人:) – jasongonzales