Помощники шаблонов Meteor в coffeescript

Я не могу выполнить какие-либо вычисления (реактивные или другие) внутри помощника по шаблону при использовании coffeescript, возвращаю только постоянные значения.

if Meteor.isClient
    Template.fg.helpers(
        f: () -> [{val:1},{val:4},{val:9}] # works.
        g: () -> [{val: i*i} for i in [1..10]] # doesn't work.
    )

и шаблон

<template name="fg">
  {{#each f}} 
    <div>f: {{val}}</div>
  {{/each}} 
  {{#each g}} 
    <div>g: {{val}}</div>
  {{/each}} 
</template>

производит

f: 1
f: 4
f: 9
g:

Но он отлично работает с javascript. Есть предложения, как заставить g работать?


person sreekar    schedule 10.10.2013    source источник


Ответы (2)


Я думаю, что этот сайт может помочь.

Итак, как это упоминается на этом сайте, сделайте что-то вроде этого:

g: () -> (val: i*i for i in [0...10])

Но я могу ошибаться, я не очень хорошо знаком с coffeescript или Meteor.

person mariomario    schedule 10.10.2013
comment
К сожалению, списки coffeescript используют скобки, а не скобки. Теперь это работает. Спасибо! - person sreekar; 10.10.2013

Внесите следующие изменения в свою функцию g, и она будет работать

Template.fg.helpers
f: () -> [{val:1},{val:4},{val:9}] # works.


g: () -> 
    for i in [1..10] # this also works
        val: i*i

Он выдаст следующий результат

f: 1
f: 4
f: 9
g: 1
g: 4
g: 9
g: 16
g: 25
g: 36
g: 49
g: 64
g: 81
g: 100

Надеюсь, это сработает :)

person Bhim Prasad Ale    schedule 10.10.2013