的解决: 的
我有一个用coffeescript编写的骨干(0.9.2)如下
class Animal.Views.Cats extends Backbone.View
template: JST['animals/cats']
...
...
render: ->
$(@el).html(@template())
this
使用此coffeescript代码,当我在浏览器中执行时, 我在控制台
中收到以下错误对象< #cat>的属性模板不是一个功能
我正在使用带有rails 3.1后端的eco模板 我哪里错了?
溶液
问题是深层嵌套的模板文件结构
模板:JST ['哺乳动物/动物/猫']修复了问题
答案 0 :(得分:2)
重申一下,如果你有这样的目录结构:
app/assets/templates/namespace/animals/cats.jst.eco
在引用模板时,您需要包含命名空间:
JST['animals/cats']
JST['namespace/animals/cats']
答案 1 :(得分:1)
未定义为函数,而是定义为属性。
试
template: -> JST['animals/cats']
即插入功能箭头' - >'
或者,如果你不希望它成为一个函数,那么在@template之后删除括号
$(@el).html @template