我有几个像贝娄这样的按钮,所有包裹的dom-if模板如下所示。
<teplate is="dom-if" if="{{google}}">
<paper-button on-tap='_signIn' arg="#google">...<div></div><paper-button>
</template>
.....
<paper-button on-tap='_signIn' arg="#facebook">...<div></div><paper-button>
<paper-button on-tap='_signIn' arg="#twitter">...<div></div><paper-button>
......
_signIn: function(e) {
console.log(e.target.getAttribute("arg"));
}
由于参数的价值,我需要使用自己的凭证登录/注册。 我随机点击这些按钮,结果有时是:null。控制台日志如下所示:
#google
#facebook
#google
null
null
null
#facebook
#facebook
#facebook
#twitter
null
因此需要稳定的结果。任何帮助或建议将不胜感激。
答案 0 :(得分:1)
点击div
内的paper-button
会显着导致null ..因为div没有arg
属性,并且调用e.target
会返回div
。您应该显示没有任何子元素的纸质按钮,如:
<paper-button on-tap='_sigIn' arg="#google">Click me</paper-button>
或创建一个循环遍历父项的函数,直到找到给定的属性。为此我正在使用:
getAttr: function(e,attr) {
elem = e.target;
while (elem.parentNode != undefined) {
if (elem.getAttribute(attr) != undefined) {
return elem.getAttribute(attr);
}
elem = elem.parentNode;
}
},
因此,您的函数_signIn
可能如下所示:
_sigIn: function(e) {
var value = this.getAttr(e, "arg");
console.log(value);
}