我一直在尝试使用Coffeescript和Jade进行Meteor。对于最基本的应用程序,我编写了以下代码。

主咖啡

import './hello.coffee'

import './main.jade'


玉器

head
    title Chatter

body
    h1 Welcome to Chatter!
    +hello


你好咖啡

import { Template } from 'meteor/templating'
import { ReactiveVar } from 'meteor/reactive-var'

import './hello.jade'

Template.hello.onCreated
    helloOnCreated: ->
        @counter = new ReactiveVar 0
        return

Template.hello.helpers
    counter: -> Template.instance().counter.get()

Template.hello.events
    'click button': (event, instance) ->
        instance.counter.set instance.counter.get() + 1
        return


你好玉

template(name="hello")
    button Click me!
    p You have pressed the button #{counter} times.


现在,当我尝试运行此应用程序时,出现此错误Uncaught TypeError: callbacks[i].call is not a function。我对此并不陌生,因此将不胜感激。谢谢!

最佳答案

您当前正在传递Template.hello.onCreated具有helloOnCreated属性的对象。只需直接传递Template.hello.onCreated一个函数。

Template.hello.onCreated ->
    @counter = new ReactiveVar 0
    return


Meteor's documentationonCreatedonRenderedonDestroyed属性接受功能。

eventshelpers属性接受对象,就像您拥有的一样。

07-28 09:21