【发布时间】:2018-02-16 04:09:56
【问题描述】:
我正在尝试将 sweetalert2 与自定义 html 一起使用,该 html 包含我想要访问的具有数据绑定的聚合物元素,但我无法使用“this.attributeName”表示法获取数据。我认为这是由于在创建警报的元素上方的 DOM 上附加了甜蜜警报,但我可能错了,是否有解决方法?我已经提供了用于创建警报的代码,并且在解决方案中我试图解决这个问题。
swal({
title: 'Blah Blah',
html:
'<some-el id="days" chosen-days="{{newCDays}}"></some-el>\
<time-input id="start" time$="{{newSTime}}" hour12 clamp="seconds"></time-input>\
<time-input id="end" time$="{{newETime}}" hour12 clamp="seconds"></time-input>',
confirmButtonText: 'Done',
preConfirm: function() {
return new Promise((resolve, reject) => {
resolve({
days: document.getElementById('days').getAttribute("chosen-days"),
start: document.getElementById('start').value,
end: document.getElementById('end').time,
});
});
}
});
【问题讨论】:
-
您应该可以使用
document.getElementById('days').chosenDays访问该属性。见demo。使用swal之前是否验证过元素定义已经导入? -
所以 'document.getElementById('days').chosenDays' 给我 undefined 和 'document.getElementById('days').newCDays' 给我一个错误说“property-accessors.html:259 Polymer::Attributes: 无法将 Array 解码为 JSON: {{newCDays}}"。我假设元素定义在那里,因为我可以看到 html 元素,这都包含在作为视图的聚合物元素中,不确定这是否有帮助。
-
你能在codepen中创建一个repro吗?
-
codepen.io/loganxdev/pen/gvXXGN 这有帮助吗?您可以看到我在 html 属性下的 sweet alert 函数中放置的绑定只是作为字符串显示在输入中,而不是创建绑定。
标签: javascript data-binding polymer