1

解決済み:

私は次のように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['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 に答える