在10次迭代后,mura中的Coldfusion循环停止

时间:2012-09-06 07:59:37

标签: loops coldfusion mura

有谁可以看到这个循环有什么问题?我不是一个冷血开发者,但我正在为我们缺席的开发人员做点什么。我试图让循环在10次迭代后停止,但它没有发生。我使用的CMS是Mura。感谢。

                    <cfset limit = 1>
                    <cfloop condition="iterator.hasNext()">
                        <cfif limit LTE 10>
                        <cfoutput>
                            <cfset item = iterator.next()>
                                <tr>
                                    <td>#item.getId()#</td>
                                    <td>#item.getTitle()#</td>
                                </tr>
                         </cfoutput>    
                         </cfif>
                        <cfset limit = limit + 1>
                    </cfloop>

3 个答案:

答案 0 :(得分:8)

虽然Ben的答案可行,但最好的选择是告诉Mura迭代器在开始循环之前要做多少次迭代。

<cfset iterator.setNextN(10) />
<cfloop condition="iterator.hasNext()">
    <cfset item = iterator.next()>
        <cfoutput>
            <tr>
                <td>#item.getId()#</td>
                <td>#item.getTitle()#</td>
            </tr>
        </cfoutput>    
</cfloop>

通常默认为10,因此在您的设置或代码中的某处必须将其设置为更多。

答案 1 :(得分:3)

我只是检查GTE 10的限制并使用CFBREAK提前终止循环。

<cfset limit = 0>
<cfloop condition="iterator.hasNext()">
    <cfoutput>
        <cfset item = iterator.next()>
            <tr>
                <td>#item.getId()#</td>
                <td>#item.getTitle()#</td>
            </tr>
     </cfoutput>    
    <cfset limit++>
    <cfif limit GTE 10>
        <cfbreak>
    </cfif>
</cfloop>

答案 2 :(得分:0)

<cfloop>还有另一种选择:

<cfloop from="1" to="10" index="ii">
    <cfif iterator.hasNext()>
        <cfset item = iterator.next() />
        <cfoutput>
            <tr>
                <td>#item.getId()#</td>
                <td>#item.getTitle()#</td>
            </tr>
        </cfoutput>
    <cfelse>
        <cfbreak />
    </cfif>
</cfloop>