2014-01-17 4 views
0

dust.js에서 영리한 방법으로 개체 배열 (항목을 가정 해 봅시다)에 @if를 사용하지 않고 루프를 통과하지 않는 항목이 하나 이상 있는지 확인하고 싶습니다. 이 일 경우 모든 항목배열에 적어도 하나의 항목이 있습니다. - Dust.js

그것은 좋은 것입니다,하지만 내가 같은 요구 사항과 issue 만든

{@size key=items} 
    {@gt value=0} 
     asdf 
    {/gt} 
{/size} 
+0

그것은 실제로 비어 객체가 아니라 배열이면서도 여전히 문제가 발생했습니다 – mbuff24

답변

1

:(하지 않습니다. 일반적으로는 내부 받아 들여야 대안 도우미를 만들어야합니다 이 도우미는 내부적으로 @size 도우미를 호출합니다.

하자로 이름을 @sizeOf는 :

dust.helpers.sizeOf = function(chunk, context, bodies, params) { 
    var value = this.size(chunk, context, bodies, params); 
    return (bodies && bodies.block) ? chunk.render(bodies.block, context.push({ isSelect: true, isResolved: false, selectKey: value })) : value; 
}; 

그리고 우리는 다음과 같이 사용한다는 :

{@sizeOf key=items} 
    {@gt value=0} 
    asdf 
    {/gt} 
{/size} 
+0

이것은 대단합니다. 나는 먼지 도우미를 생각하지 않았습니다. 데이터 수준에서 명시 적 배열을 사용하여 끝내므로 간단한 {? data} {/ data} 확인을 사용할 수 있습니다. – mbuff24

1

하늘의 배열 항목을한다 가정 할 때,이 작업을해야합니다 :

{?items} 
    {#items} 
     ... 
    {/items}  
{:else} 
    There are no results 
{/items} 
관련 문제