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

时间:2015-02-09 13:55:44

标签: javascript ember.js

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

我一直试图绕过这一个。我创建了这样的动作:

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

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

1 个答案:

答案 0 :(得分:2)

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

一般的想法是过渡到你想要的状态如下:

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的文档。