1

解决了:

我有一个用coffeescript编写的主干(0.9.2),如下所示

class Animal.Views.Cats extends Backbone.View
 template: JST['animals/cats']
 ...
 ...
 render: ->
  $(@el).html(@template())
  this

使用此咖啡脚本代码,当我在浏览器中执行时,我在控制台中收到以下错误

对象 <#cat> 的属性模板不是函数

我正在使用带有 rails 3.1 后端的生态模板我哪里出错了?

解决方案:

问题是深度嵌套的模板文件结构

模板:JST['mammals/animals/cats'] 修复了问题

4

2 回答 2

2

重申一下,如果您有这样的目录结构:

app/assets/templates/namespace/animals/cats.jst.eco

引用模板时需要包含命名空间:

  • 不会工作JST['animals/cats']
  • 将工作:JST['namespace/animals/cats']
于 2012-12-20T21:36:27.747 回答
1

在您的代码中,“模板”未定义为函数,而是定义为属性。

尝试

template: -> JST['animals/cats']

即,插入功能箭头'->'

或者,如果您不希望它成为一个函数,则在 @template 之后删除括号

$(@el).html @template
于 2012-05-01T15:38:52.833 回答