我在 Polymer 2 中创建了新组件,在其中我将使用 2 个 Web 组件,组件 a 用于显示 div 的名称和组件 b 的长度,它们将在此 Web 组件内运行 dom-repeat。话虽如此,在 dom-repeat 完成后,我的代码无法按我想要的方式工作。在 dom-repeat 运行完成后,我需要获取组件 b 的长度: - 获取长度并将我的计数器放入组件 a - 将所有组件 b 分成 6 个一组在一个 div 中
我在小提琴中制作了一些 JQuery 代码,并将放在下面,这适用于默认 div,但是当我放入我的聚合物元素的准备方法时返回 0,而不是等待 dom-repeat 完成。我试过 setTimeout 但这也不起作用。
console.log('Init count');
var content = $('component-b').length;
console.log('Cards: ' + content);
var item = $('component-b');
for (var i = 0; i < item.length; i+=6){
item.slice(i, i+6).wrapAll('<div class="list"></div>');
}
var lists = $('.list').length;
console.log('Lists: ' + lists);
$('component-a').attr({
total:content
});
$('component-a').attr({
totalPages:lists
});
在这里,我将介绍它现在是如何工作的。组件 a 具有显示计数器的属性。
<template>
<div class="secao">
<h2>{{title}}</h2>
<component-a>
<template is="dom-repeat" items="{{products}}" as="product">
<component-b class="product" product-id="{{product.productID}}" image-src="{{product.imageSrc}}" href="{{product.href}}"
main-title="{{product.mainTitle}}" authors-text="{{product.author}}" price-discount-value="{{product.priceDiscount}}"
price-value="{{product.realPrice}}" avaliation-score="{{product.avaliationScore}}" flag="{{product.flag}}"></component-b>
</template>
</component-a>
</div>
</template>
这就是 Firefox 中显示的结果。初始计数卡:0 列表:0
但是我的数组有 24 张卡片,使用该 jquery 代码将是 4 个列表