2013-11-01 9 views
5

gelen ApplicationRoute eylemlerini Çağrı:ember.js: ı (yorumun görebileceğiniz gibi, ben nedeniyle farklı mobil tarayıcılarda hatalar için başıma GoBack'i işlemek gerekir) bir eylem <code>goBack</code> ile <code>ApplicationRoute</code> var diyelim iç içe rota

Mobile.ApplicationRoute = Em.Route.extend 
    actions: 
     goBack: -> 
      # TODO: Remove when iOS 7 fixed their history 
      # If there's no route to go back, go to front 
      # TODO: Remove when Microsoft fixed their 
      # back button in offline mode 
      if not (Nn.MobileHelper.isiPhone() or Nn.MobileHelper.isIeMobile()) and @get("router.recentRoute")? 
       return window.history.back() 

      @get("controller").set("isHitBackButton", true) 

      @transitionTo("front").then => @get("controller").set("isHitBackButton", false) 

Bu eylemi başka bir yoldan nasıl tetikleyebilirim? @transitionTo numaralı telefonu aramam gerektiğinden, bu kod parçasının bir rota içinde olması gerektiğini unutmayın.

cevap

5

eylemler, varsayılan olarak uygulama rotasına kadar kabarcıklar oluşturur! Şablonunuzda {{action 'goBack'}}'u veya koddan (eksi bileşenler) this.send('goBack') numaralı telefonu arayın. Bileşenlerden, olayları biraz daha farklı hale getirmeniz gerekiyor ve this.sendAction('internalActionName') kullanın.

http://emberjs.jsbin.com/ulIhUze/1/edit