状态为待处理时显示待处理图标,状态完成时显示已完成图标

时间:2016-06-06 22:24:46

标签: ajax ember.js get

The General Design

我希望能够在get请求仍处于暂挂状态且该请求的状态处于暂挂状态时在该区域中显示待处理状态图标,但是我希望它在get请求返回状态时显示已完成状态图标已完成。

在我的把手中:

{{!-- Status --}}
  {{#each search.data as |status|}}
    {{#if statusPending}}
      <p><span><i class="glyphicon glyphicon-option-horizontal"></i></span>&nbsp;</p>
    {{else}}
      <p><span><i class="glyphicon glyphicon-ok"></i></span>&nbsp;</p>
    {{/if}}
  {{/each}}

statusPending是一个将检查状态的操作。

我在想这样的事情:

actions: {
    statusPending: function() {
        if ('status' == 'pending') {
            Ember.$.ajax({
                type: 'GET',
                url: https://linktothing.com/slash/,
                    return: true,
            })
        }
    }
}

其中status位于get请求的标头中,而pending是它返回的内容。

这就是我到目前为止所得到的......但它当然没有用。 欢迎任何有关阅读材料的建议,代码或链接。通过返回true,它满足把手中的if / else语句,因此将显示false - 如果不为true则完成。

更新

对我的案件有效的答案。

didInsertElement: function() {
      var _thing = this.get('thing');

      this.set('isPending', _thing.status === 'PENDING');
},

1 个答案:

答案 0 :(得分:1)

它应该是这样的:

{
    isPending: false

  checkStatus: function() {
    Ember.run.later(this, function() {
        Ember.$.ajax(/* your code here */).then(function(response) {
        if (response.status == 'finished status') {
            this.set('isPending', false);
        } else {
            this.checkStatus();
        }
      }.bind(this))
    }, 5000); //check every 5 seconds
  }

    actions: {
    startAsyncOperation: function() {
        this.set('isPending', true);
      this.checkStatus();
    }
  }

}