在Polymer中处理多个ajax调用的加载指示器

在Polymer中处理多个ajax调用的加载指示器,polymer,polymer-1.0,Polymer,Polymer 1.0,我正在使用Polymer 1.0创建一个web应用程序 我有各种元素来执行一个或多个iron ajax调用,还有另一个元素用于显示加载覆盖。但是在我当前的解决方案中,我已经向进行ajax调用的每个元素添加了加载覆盖,以及它的逻辑是否显示 <dom-module id="backend-call-application"> <template> <iron-ajax id='loadA' loading="{{_loadingA}}" ...><

我正在使用Polymer 1.0创建一个web应用程序

我有各种元素来执行一个或多个iron ajax调用,还有另一个元素用于显示加载覆盖。但是在我当前的解决方案中,我已经向进行ajax调用的每个元素添加了加载覆盖,以及它的逻辑是否显示

<dom-module id="backend-call-application">
  <template>
    <iron-ajax id='loadA' loading="{{_loadingA}}" ...></iron-ajax>
    <iron-ajax id='loadB' loading="{{_loadingB}}" ...></iron-ajax>

    <loading-overlay id="loadingOverlay" with-backdrop></loading-overlay>

  </template>

  <script>
    Polymer({

      is: 'backend-call-application',

      observers:[
        "_isXhrLoading(_loadingA,_loadingB,....)"
      ],

      _isXhrLoading: function() {
        for (var i = 0; i < arguments.length; i++) {
          if (arguments[i]) {
            this.$.loadingOverlay.open()
            return;
          }
        }
        this.$.loadingOverlay.close()
      }
    });
  </script>
</dom-module>

使用一个属性加载,而不是2

<iron-ajax id='loadA' loading="{{_loading}}" ...></iron-ajax>
<iron-ajax id='loadB' loading="{{_loading}}" ...></iron-ajax>

将加载值绑定到具有某些属性的加载覆盖,并在加载为真时显示加载程序

 <loading-overlay id="loadingOverlay" is-loading="[[_loading]]" with-backdrop></loading-overlay>


因此,每次创建任何ajax时,加载都将变为现实,因此显示加载程序使用一个属性而不是2

<iron-ajax id='loadA' loading="{{_loading}}" ...></iron-ajax>
<iron-ajax id='loadB' loading="{{_loading}}" ...></iron-ajax>

将加载值绑定到具有某些属性的加载覆盖,并在加载为真时显示加载程序

 <loading-overlay id="loadingOverlay" is-loading="[[_loading]]" with-backdrop></loading-overlay>


因此,每次创建ajax时,加载都将成为现实,因此显示加载程序

我认为唯一可以缩短的是加载观察者

_isXhrLoading: function() {
    if(Array.from(arguments).indexOf(true) >= 0) {
        this.$.loadingOverlay.open()
    } else {
        this.$.loadingOverlay.close()
    }
  }

我想你唯一能缩短的就是加载观察者

_isXhrLoading: function() {
    if(Array.from(arguments).indexOf(true) >= 0) {
        this.$.loadingOverlay.open()
    } else {
        this.$.loadingOverlay.close()
    }
  }

但是,如果两个都在加载,而一个已经完成,会发生什么呢?然后覆盖应该消失,但没有完成加载这是我想问的问题:当一个有另一个加载状态时会发生什么?在我的
加载覆盖中
正在加载时会发生什么?也许我没有说,
加载覆盖
是自己实现的元素。但是我认为这个元素将无法自行打开。is-loading是我添加的,仅供您理解!!我认为你应该有一些属性,比如在纸张旋转器中,我们有活动的,我们将加载到活动属性。但是如果两个都加载,一个完成了,会发生什么呢?然后覆盖应该消失,但没有完成加载这是我想问的问题:当一个有另一个加载状态时会发生什么?在我的
加载覆盖中
正在加载时会发生什么?也许我没有说,
加载覆盖
是自己实现的元素。但是我认为这个元素将无法自行打开。is-loading是我添加的,仅供您理解!!我认为你应该有一些属性,比如在纸旋转器中,我们有活动的,我们将加载到活动属性,在将它写入每个使用它的元素时,至少有一点好处。但是在我看来,当我从Java世界来到这里时,使用
indexOf(true)
非常困难:p检查了它,但不可能<代码>参数
不是数组,有关详细信息,请参阅。但这在将其转换为数组(也显示在上面的链接中)时会起作用。在将其写入使用它的每个元素时,至少有一点好处。但是在我看来,当我从Java世界来到这里时,使用
indexOf(true)
非常困难:p检查了它,但不可能<代码>参数
不是数组,有关详细信息,请参阅。但是当将其转换为数组时(也显示在上面的链接中),这将起作用。