我有一个使用货币和价格属性定义的元素。当我将货币属性设置为英镑时,我想相应地计算价格。我尝试挂钩attrChanged方法,但if条件永远不会记录为真
currencyChanged: function (attrName, oldVal, newVal) {
var actualPrice = this.getAttribute("usdprice");
actualPrice = parseInt(actualPrice);
var converter = 1;
if(newVal === "£") {
converter = 0.59;
console.log("true");
}
this.$.price.innerHTML = actualPrice*converter;
}
我使用以下命令更改货币
var a = document.querySelector("gmselect-element");
a.setAttribute("currency", "£");
答案 0 :(得分:2)
当您使用published property *Changed watchers之类的currencyChanged
时,参数为(oldVal,newVal)。只有当您创建了一个通用的attributeChanged
lifecycle method时,才能获得它(attrName,oldVal,newVal)。试试这个:
currencyChanged: function (oldVal, newVal) {
var actualPrice = this.getAttribute("usdprice");
actualPrice = parseInt(actualPrice);
var converter = 1;
if(newVal === "£") {
converter = 0.59;
console.log("true");
}
this.$.price.innerHTML = actualPrice*converter;
}
在this simplified jsbin上打开Dev Tools控制台,看它是否有效。