我使用聚合物(v1.0),我想创建一个简单的元素,它可以向我显示一些额外的内容,具体取决于属性,并且它必须与多个值 - 又称简单的“切换”。
我写了这段代码。
...
<span>{{for}}</span>
<template is="dom-if" if="{{checkFor('alfa')}}">
hi !!!
</template>
</template>
<script>
Polymer({
is: "...",
properties: {
for: String,
user: String,
manager: {
type: Boolean,
notify: true
}
},
attached: function() {
this.textContent = 'Hello World, my user is ' + (this.user || 'nobody') + '.\n' +
'This user is ' + (this.manager ? '' : 'not') + ' a manager and he likes ' + this.for + '.';
},
checkFor: function (aaa) {
// return aaa === this.for;
this.textContent = 'Hello World, my user is ' + (this.user || 'nobody') + '.\n' +
'This user is ' + (this.manager ? '' : 'not') + ' a manager and he likes ' + this.for + '.';
}
});
</script>
我的函数checkFor
用于检查我想要的值(例如'alfa')是否与element属性/属性for
相等。
但它根本不起作用所以我尝试使用console.log()检查值。之后,我发现变量aaa
包含'alfa',变量this.for
包含undefined
。
然后我复制了一些我发现的使用元素属性的输出代码,但它也没有用。如果我在attached
函数中运行相同的代码,它可以正常工作。
如何在自定义函数中使用元素属性?
答案 0 :(得分:2)
第一次调用checkFor
函数时,this.for
尚未定义。您可以将for
作为参数传递给函数,如documentation中所述。
<template is="dom-if" if="{{checkFor('alfa', for)}}">