从 Ember.js 控制器中的操作重定向到错误状态

Redirecting to error state from action in Ember.js controller

在 Ember.js 中编写我的第一个应用程序时,我 运行 遇到了一个问题,我想通过用 jQuery 调用一些 API 来执行一个操作。当此调用失败时,我希望将页面重定向到错误状态。

我一直在努力解决这个问题。我创建了一个这样的动作:

Contributionkeeper.RepositoriesController = Ember.Controller.extend({
  actions: {
    delete: function(repo) {
      Ember.$.ajax({ 
        url: '...', 
        success: function(data) { }, 
        error: function() { 
          //TODO: Raise error
        });
    }
  }
});

我希望应用程序导航到错误子状态。我该如何解决这个问题?

这将取决于您是否要进入特定的错误状态(对于一般应用程序,特定于 Repositories 等)。

大意是按如下方式过渡到你希望的状态:

Contributionkeeper.RepositoriesController = Ember.Controller.extend({
  actions: {
    delete: function(repo) {
      Ember.$.ajax({ 
        url: '...', 
        success: function(data) { }, 
        error: function() { 
            return this.transitionTo('yourErrorLocation');
        });
    }
  }
});

有关详细信息,请参阅有关 Loading and Error substates 的文档。