Polymer不重新评估数组绑定表达式

时间:2016-01-18 05:48:24

标签: polymer web-component

如果数组中没有元素,我有以下摘录:

<template is="dom-if" if="[[isEmpty(arrayList)]]">
    <p>some text</p>
</template>

该元素具有以下方法:

<script>
(function() {
  'use strict';

  Polymer({
    ...

    properties: {
      arrayList: {
        type: Array,
        value: function() {return []}
      }
    },

    ...

    _addElement: function(obj) {
      this.push('arrayList', obj);
    },

    isEmpty: function(obj) {
      return obj.length === 0;
    }

  });
})();
</script>

当我调用_addElement_时,似乎未评估[[isEmpty(arrayList)]]表达式,因此不显示文本。

我做错了吗?

1 个答案:

答案 0 :(得分:1)

您需要将表达式更改为[[isEmpty(arrayList.*)]][[isEmpty(arrayList.splices)]]。 否则,只有在为isEmpty分配新数组时才会调用arrayList函数,但在更改其内容时则不会调用def t_INT_CONSTANT(t): r'(\d+ | 0b[0-1]+)' t.type = reserved_map.get(t.value,"INT_CONSTANT") return t 函数。您可以在docs

中找到更多信息