让'dom-if'检查另一个元素中属性的条件?

时间:2015-10-20 20:05:23

标签: javascript polymer-1.0

我有一些看起来像这样的代码:

..
<template is="dom-if" if="_myMethod()">
   <div>Hello world</div>
</template>
..

_myMethod看起来像这样:

_myMethod: function(){
   return this.$.someOtherObject.someList.size() == 0;
}

如您所见,该方法从页面中的其他polymer-element返回一个值。但是当我的其他 dom-if更改时,如何让polymer-element更改为“状态”?

我知道如果我将值传递给方法,如下所示:_myMethod(someValue)如果someValue更改,则会更新dom-if,但我需要“观察”另一个polymer-element。我该怎么做我想做的事?

1 个答案:

答案 0 :(得分:0)

经过一些实验,我得到了以下结论:

..
<my-other-element on-some-list-changed="_notifyChange" id="someOtherObject">
</my-other-element>
..
..
<template is="dom-if" if="_myMethod(didChange)">
   <div>Hello world</div>
</template>
..
..
_notifyDidChange: function()
{
   this.didChange = !this.didChange;
}
_myMethod: function(didChange){
   return this.$.someOtherObject.someList.size() == 0;
}

如果另一个元素上的值(数组)发生更改,dom-if现在将更新。不确定是否存在错误(使用数组),但我尝试直接绑定到someOtherObject.someList并同步两个元素之间的更改,它们已同步,但事件未被正确触发,因此dom-if不会更新。 :(