[英]PolymerJS: Pass array of items to function - Uncaught Typeerror: Converting circular structure into JSON
我有一个简单的应用程序,看起来像这样:
该应用程序具有“全部完成”按钮,该按钮应按照标签上的说明进行操作并可以正常工作。 但是,按下按钮后,我的控制台中出现以下错误消息:
未捕获的Typeerror:将圆形结构转换为JSON
这是完成所有任务的函数,如下所示:
setItemsCompleted: function(completed) {
for (var i = 0; i < this.items.length; ++i) {
this.set(['items', i, 'completed'], completed);
}
}
它似乎正在接受一系列项目。 我想向其传递一系列项目,但这是我的函数,该函数由完整的“全部”按钮触发:
completeAll: function(e) {
console.log(this.items);
this.model.setItemsCompleted(this.items);
},
这是我的td-todos.html中完整的全部按钮的代码:
<template is="dom-if" if="{{!allCompleted}}">
<paper-button
raised
tabindex="1"
class="colorful"
id="complete-all"
on-tap="completeAll">
Complete All
</paper-button>
</template>
我的问题是,如何传递项目数组而不是带有项目的对象?
也许它的接受函数是错误的,因为它最初接受了一个复选框触发的事件,如下所示:
toggleAllCompletedAction: function(e) {
this.model.setItemsCompleted(e.target.checked);
},
上面的代码直接从Polymer库的TodoMVC示例中获取,并稍作修改。 因此,问题可以简化为:如何使用按钮而不是复选框?
setItemsCompleted
采用Boolean
作为参数。 在原始文件中,复选框的checked
状态会传入。因此,根据复选框的状态,所有项都被标记为已完成或未完成。 现在,如果您想通过按钮将所有内容设置为完成,只需传入true
。
completeAll: function(e) {
this.model.setItemsCompleted(true);
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.