Чтобы лучше отражать структуру ваших объектов, вы можете использовать #with
для правильного доступа к контексту объекта . В этом контексте вы можете создать диапазон для каждого элемента, в пределах данного диапазона, используя #each
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{/with}}
Если ваш помощник дает неожиданные результаты, у вас хорошо получается неинвазивный запасной вариант:
objectReturnHelper: function(param1) {
var query = collectionName.findOne(param1)
if (!query) return null
var obj1 = query.count1;
var obj2 = query.count2;
return {
obj1: obj1 >= 0 ? _.range(0, obj1) : null,
obj2: obj1 >= 0 ? _.range(0, obj2) : null,
};
}
Затем вы можете поймать этот запасной вариант внутри with
, используя else
, который автоматически срабатывает, когда контекст ложный:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{else}}
<p>No data found</p>
{{/with}}
Вы, конечно, можете настроить его на другой запасной вариант, когда else
попадает в блоки each
:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{/with}}