11

mustache.js で構築されたテンプレートでバックボーン コレクションをレンダリングしようとしています。問題は、テンプレートでモデルの cid を取得できなかったことです。私のコードは

        <div class="phone span4">
            <h5> Phone Appointments</h5>
            {{ _.each(slots, function(slot) { }}
                {{ if(slot.aptType == "P"){ }}
                    <h6 cid="{{=slot.cid}}"  aptId="{{=slot.aptId}}"> {{=slot.beginTime}}  - {{=slot.endTime}} </h6>
                {{  }   }}
            {{  }); }}
        </div>

上記のコードから、aptId、beginTime、および end Time を取得できますが、Cid は取得できません。テンプレートでレンダリング中にコレクションからモデルの Cid を取得する方法は?

ビューからのレンダリングメソッドは次のようになります

    render:function(){
    var template = _.template($("#slot-display-template").html());
    compiledTmp = template({slots: this.collection.toJSON()})
    this.$el.append(compiledTmp);
    }

また、モデルの一意の識別子として cid を使用することの欠点はありますか?

前もって感謝します !!!

4

3 に答える 3

23

cidデフォルトでは、 は出力に含まれませんtoJSONtoJSONモデル定義でオーバーライドして を含める必要がありますcid

toJSON: function() {
  var json = Backbone.Model.prototype.toJSON.apply(this, arguments);
  json.cid = this.cid;
  return json;
}
于 2013-03-08T16:36:42.840 に答える