【发布时间】:2019-01-27 11:46:46
【问题描述】:
H,
我试图根据变量值隐藏/取消隐藏 div。下面是我的代码。
<div id="content" hidden$="{{ _hideDiv( myValue ) }}"></div>
<paper-icon-button id="button" on-tap="_myValue" icon="create" hidden$="{{ _hideButtons( myValue, readonly ) }}">
</paper-icon-button>
<paper-input id="input" value="{{ value }}" hidden$="{{ _hideButtons( myValue, readonly ) }}">
</paper-input>
通过使用myValue 属性,我试图隐藏/取消隐藏 div 和按钮。但是每当我更改 myValue 时,它都不会反映在 html 上。
在 console.log 中我可以看到更改后的新值,但在 html 中我看不到更改。有人可以帮助我,我不知道为什么它没有反映?
onInit( value ) {
if ( someCondition i check here ) {
this.set( 'myValue', false ); // THIS CHANGE NOT REFLECTING
} else {
this.set( 'myValue', true ); // THIS CHANGE NOT REFLECTING
}
}
_dataChanged( data ) {
this.onInit( data );
this.set( 'myValue', false );
}
_myValue() {
this.set( 'myValue', !this.myValue );
}
_hideButtons( isActive, readonly ) {
return myVal === true && readonly === false;
// myVal is not defined !! Is it this.myValue or isActive ?
}
_hideDiv( myVal ) {
return myVal === false;
}
_myValue 方法更改反映但在 onInit 方法上我正在设置未反映的元素初始化值。
【问题讨论】:
-
一切看起来都很好。这是一个正确的方法,我看不出有什么问题。因此,问题将出在您正确发布的代码之外的其他地方。您使用的是聚合物版本 1 还是 2?您指定了有问题的两个标签......是否调用了 _hideDiv 函数? myVal 调用时的值是多少。如果它是字符串类型,那么 myVal === false 将始终为 false。
-
使用polymer2,myVal为布尔型。
标签: javascript polymer polymer-1.0 polymer-2.x