Я пытаюсь написать пользовательский итератор в космос (я использую метеорит 1.1.3). Итератор должен быть последовательным для цикла (в основном для замены моего использования #each при необходимости, так как я полагаю, что #each не гарантированно будет последовательным на его итерации).Напишите пользовательский итератор для Spacebars
Я попытался следующие:
В Lib -
UI.registerHelper 'sequentialFor',() ->
ret = ""
for i in [[email protected]]
id = @[i]
ret = ret + Template.noop
ret
noop.html -
<template name="noop">
{{> UI.contentBlock this}}
<template>
main.html -
{{#sequentialFor ids}}
<div id="wow-{{this}}">stuff</div>
{{/sequentialFor}}
идентификаторами в выше представляет собой массив строк, переданных f rom один из основных помощников шаблона.
Прямо сейчас он жалуется, что возврат из моего помощника интерфейса - это [объект Object] [object Object]. Ради здравомыслие, я знаю, что если заменить мой помощник UI с:
UI.registerHelper 'sequentialFor',() ->
//ret = ""
//for i in [[email protected]]
// id = @[i]
// ret = ret + template
id = @[0]
Template.noop
я получаю, что DIV в моем main.html показывает с соответствующим идентификатором в составе атрибута ид по желанию. Однако я не могу заставить работать цикл for.
Я не могу просто вернуть div в main.html непосредственно из помощника, потому что у меня есть много div, которые мне нужно обернуть моим новым итератором, каждый из которых имеет очень разные атрибуты.
Я думаю, что простой вопрос заключается в том, как определить свой собственный итератор блоков (сродственный с #each) в пробелах?
Более сложный вопрос может быть, что не так с моим подходом выше?
Я рассмотрел широкий спектр ресурсов, но только нашли следующую быть очень полезным: How to pass an object from to a block helper back to the block in meteor blaze? https://github.com/meteor/meteor/wiki/Using-Blaze https://github.com/meteor/meteor/blob/devel/packages/spacebars/README.md Iterating over basic “for” loop using Handlebars.js
ПРИМЕЧАНИЕ Я использую CoffeeScript
каждый не заказан, если вы используете сортировку в своем запросе mongo? –
Цикл for не работает, потому что 'this' не является массивом. – pfkurtz
'{{#each}}' над массивом будет упорядочено. – user3374348