2013-04-10 29 views
6

Yeni posta yönlendiricisine geçiş yapıyorum ama çok basit bir sorularım var - hangi rotada olduğumu nasıl anlarım? App.router.get('currentState') gibi bir şey yapmadan önce, artık yönlendiricinin artık StateManagerEmber.js şu anki rotanı alıyor

cevap

8

'dan devraldığı için bu işe yaramaz gibi görünmektedir. Bu question'a bir bakın.

Özet: currentState artık ApplicationController'da currentPath numaralı mülkte saklanmaktadır. Kabul çözüm küresel bir özellik haline yazmaya gözlemci için bu özellik vardı:

App = Em.Application.create({ 
    currentPath: '' 
}); 
ApplicationController : Ember.Controller.extend({ 
    updateCurrentPath: function() { 
     App.set('currentPath', this.get('currentPath')); 
    }.observes('currentPath') 
}); 
+0

Harika, teşekkürler. Bu işlevselliği bilerek temizlemiş olsalar da merak ediyorum - neden sadece şu anki yolu bulmak için tüm bunları kendimiz yapalım? –

+0

Sry, bilmiyorum. Kendimi asla programlı olarak kullanmamıştım. Sadece hata ayıklama amaçları için kullandım. – mavilein

+0

Ben de bunu denedim - işe yaradı, sadece ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' diye adlandırılamıyordu. Tüm çağrıları sessizce başarısız gibi görünüyordu. Bunun yerine sadece doğrudan ('' 'App.currentPath = this.get 'currentPath'' ') ayarlıyorum, çünkü sadece hata ayıklama amaçları için buna ihtiyacım var –

6

Muhtemelen bunun için püskürdü alacak ama bununla hayal kırıklığı bir ton sonra gerçekten çirkin geçici çözümü uygulamaya karar verdi.

Kullanım örneğim, geçerli gönderinin kimliğini almaya çalışıyordu çünkü bir yanıt gönderiyordum.

" ... #/posta/12345"

benim geçici çözüm (hiç çirkin kodu):

kontrolörü olarak
var currentId = window.location.hash.split('/')[2]; 
App.Message.createRecord({ 
     content: message, 
     inReplyTo: currentId 
    }).get('transaction').commit(); 
+2

+1 hiç kimse, aslında ne yapmak istediğinizi gerçekleştirmek için sizi suçlayabilir "çirkin" yol boyunca gider. –

1

Geçerli rotayı alabilir mevcut rota için böyle bir şey düşünün Aşağıdaki kodu kullanarak adı. İyi şanslar

this.get ("currentRouteName")

İlgili konular