2012-04-01 11 views
1

私は次のStateManager持っている:私はこのようなのStateManagerのsendメソッドを使用して解析状態にnotParsing状態から移行することができる午前Ember.js状態マネージャに状態の間でデータの受け渡し

Lead.StateManager = Ember.StateManager.extend 
    initialState: 'notParsing' 

    notParsing: Ember.State.create 
    startParsing: (manager, search) -> 
     manager.goToState 'parsing' 

    parsing: Ember.State.create 
    enter: -> 

@state_manager.send('startParsing', {search_url: "http://thesoftwaresimpleton.com/"}) 

私は、送信メッセージを介して引数を渡すことができますが、それは名前だけ引数を受け入れるので、私はgoToStateを使用して引数を渡すことはできません。

startParsingアクションに渡される引数をどのように渡すことができますか?

答えて

1

私の解決策が良いかどうかわかりませんが、確かにユースケースに依存しますが、manager自体にプロパティを格納することができます。http://jsfiddle.net/pangratz666/6Q39q/を参照してください。

App = Ember.Application.create({}); 

App.StateManager = Ember.StateManager.extend({ 
    initialState: 'notParsing', 

    notParsing: Ember.State.create({ 
     startParsing: function(manager, search) { 
      manager.set('url', search.searchUrl); 
      manager.goToState('parsing'); 
     } 
    }), 
    parsing: Ember.State.create({ 
     enter: function(manager) { 
      this._super(); 
      var url = manager.get('url'); 
      console.log('start parsing url: %@'.fmt(url)); 
     } 
    }) 
}); 

var stateManager = App.StateManager.create(); 
stateManager.send('startParsing', { 
    searchUrl: 'http://www.google.com' 
});​ 

別の解決策は、stateManagerインスタンスに設定されているコントローラを使用することであろう、http://jsfiddle.net/pangratz666/Y9KyA/を参照してください。

+0

芽吹きステートチャートでは、gotoStateで引数を渡すことができます。なぜEmberと一緒にはできないのだろう? おそらく私はこれを観察できるように使うべきです。 – dagda1

関連する問題