在Ember.js状态管理器中的状态之间传递数据

在Ember.js状态管理器中的状态之间传递数据,ember.js,Ember.js,我有以下StateManager: Lead.StateManager = Ember.StateManager.extend initialState: 'notParsing' notParsing: Ember.State.create startParsing: (manager, search) -> manager.goToState 'parsing' parsing: Ember.State.create enter: ->

我有以下StateManager:

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

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

  parsing: Ember.State.create
    enter: ->
我可以使用stateManager的send方法从notParsing状态转换为parsing状态,如下所示:

@state_manager.send('startParsing', {search_url: "http://thesoftwaresimpleton.com/"})
我可以通过发送消息传递参数,但不能使用goToState传递参数,因为它只接受name参数


有人能指出我如何将传递到startParsing action的参数传递给startParsing action吗?

我不知道我的解决方案是否好,这当然取决于用例,但您可以将属性存储在
管理器本身,请参阅


另一种解决方案是使用控制器,这些控制器是在
stateManager
实例上设置的,请参见。

我不知道我的解决方案是否好,这当然取决于用例,但您可以将属性存储在
管理器本身,请参见


另一种解决方案是使用在
stateManager
实例上设置的控制器,请参阅。

在sproutcore状态图中,可以使用gostate传递参数。我想知道为什么余烬是不可能的?也许我应该为此使用一个observer。在sproutcore状态图中,可以使用gostate传递参数。我想知道为什么余烬是不可能的?也许我应该用一个可观察的。
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'
});​