Backbone: ビューのAttributesメソッド内で「data-」属性を渡すことができません

作成日 2012年10月03日  ·  8コメント  ·  ソース: jashkenas/backbone

私はビュー内で属性を設定するのが好きです...

Backbone.View.extend({
 属性:{
 data-attr: 'mydata'
 }
 });

...ただし、キー「data-attr」のハイフンが原因でエラーがスローされます。

キャッチされないSyntaxError:予期しないトークン-
これはJavaScriptKey-Valueオブジェクトの不正なトークンであることに気付きましたが、データ属性の受け渡しが最も可能性の高いシナリオの1つであるという事実を考えると、Backboneがこれを回避する方法を提供することを期待していました。 私はjQueryを使用してレンダリング関数内で属性を設定することでそれを回避してきました:
レンダリング:関数(){
 this。$ el.attr( 'data-attr'、 'mydata "');
 }

これは機能しますが、別のオプションがあるかどうかを尋ねようと思いました。

question

最も参考になるコメント

次のような関数を使用できます。

attributes: function() {
  return {
    'data-attr': this.model.foo
  };
}

全てのコメント8件

うん-それは単なるJavaScriptオブジェクトです。 引用符で囲まれたキーを使用します。

attributes: {
    "data-attr": "mydata"
}

ああ、やってみたと思った! ありがとう!

ビューのモデル内の属性からビューのDOM要素にデータ属性を渡すために何を提案しますか? そのような...

属性:{
 "data-attr":this.model.foo
 }

私は「これ」を参照する余地を失っています。

 Uncaught TypeError:未定義のプロパティ 'model'を読み取れません 

次のような関数を使用できます。

attributes: function() {
  return {
    'data-attr': this.model.foo
  };
}

素晴らしい。 それは完璧に機能します。 迅速な対応ありがとうございます!

どういたしまして、将来的には、このようなテクニカルサポートのバグチケットを使用しないでください。最初にIRCチャネルまたはメーリングリストを試してください。

喜んで〜する。 最初に試しましたが、DocumentCloud IRCには、応答しなかったTurjakasという他のユーザーが1人しかいません。

入力を間違えたに違いありません-現在、freenodeの#documentcloudには242人の人々がいます。

このページは役に立ちましたか?
0 / 5 - 0 評価