2

我试图在进入状态时直接调用一个动作。(实际上在我的应用程序中,我试图对我的状态的父状态调用一个操作,但最终结果是相同的。)

在我的应用程序中,我从 StateOne 过渡到 StateTwo。当我进入我的状态 StateTwo 时,我调用 manager.send("myStateTwoAction")。但是,我立即收到错误消息

Uncaught Error: <Ember.StateManager:ember1424> 
  could not respond to event myStateTwoAction in state StateOne.

请注意,这是在我的 StateTwo 输入方法中。

这是我的 jsFiddle:http: //jsfiddle.net/SamFent/YGX2Y/

有谁知道是否有办法从新状态的 enter 方法中调用状态的操作?

4

1 回答 1

2

您不能在enter方法中调用状态操作。正如您在此处看到的:https ://github.com/emberjs/ember.js/blob/master/packages/ember-states/lib/state_manager.js#L861 currentState 在调用 enter 方法后设置。但是您可以实现在setup进入状态后立即调用女巫的方法。

App.StateTwo = Ember.State.extend({
  enter: function(manager) {
    $("#states").append("<p>State two</p>");
  },
  setup: function(manager){
    manager.send("goToThree");
  },
  goToThree: function(manager) {
    $("#states").append("<p>=> going to three...</p>");
    manager.transitionTo("stateThree");
  }
}),

见:http: //jsfiddle.net/YGX2Y/2/

我希望这对你有用。

于 2012-09-12T13:49:01.377 回答