作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 dom-repeat
内的 dom-if
来完成条件绑定(bind)。这是我的代码:
<template is="dom-repeat" items="{{customers}}">`
<template is="dom-if" if="_continueLoop(index)" indexAs="index">
Data renders here
</template>
</template>
函数_continueLoop(index)
看起来像:
_continueLoop: function (value) {
alert("This function is not being called at all!No alert message.");
if (value == 1) return true;
else return false;
}
我的目的是如果index
的值为1
,即当获取前2条记录时,停止dom-repeat
循环继续希望循环停止获取更多内容。
最好的方法是什么?
最佳答案
由于以下原因,我认为这不是最好的答案,但我想我会分享一个解决方案。您可以使用过滤器:
<dom-module id="employee-list">
<template>
<template is="dom-repeat" items="{{employees}}" filter="_filter">
<div># <span>{{index}}</span></div>
</template>
</template>
<script>
Polymer({
is: 'employee-list',
ready: function() {
this.employees = [{
name: 'Bob'
}, {
name: 'Sally'
}];
},
_filter: function(item) {
// This is slow. The larger your array, the worse
// the performance will be
return this.employees.indexOf(item) < 1;
}
});
</script>
</dom-module>
请注意,这效率不高,因为 binding help pages explains :
Because of the way Polymer tracks arrays internally, the array index isn’t passed to the filter function. Looking up the array index for an item is an O(n) operation. Doing so in a filter function could have significant performance impact.
关于polymer-1.0 - 聚合物1.0 : How to stop dom-repeat loop from executing using a dom-if check inside the loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999581/
我是一名优秀的程序员,十分优秀!