javascript - 在模板上渲染主干集合时无法获取模型的 cid

标签 javascript templates backbone.js mustache

我正在尝试在使用 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?

我从 View 中的渲染方法看起来像这样
    render:function(){
    var template = _.template($("#slot-display-template").html());
    compiledTmp = template({slots: this.collection.toJSON()})
    this.$el.append(compiledTmp);
    }

使用 cid 作为模型的唯一标识符还有什么缺点吗?

提前致谢 !!!

最佳答案

cid默认情况下不包含在 toJSON 中输出。您需要覆盖 toJSON在您的模型定义中并包含 cid .

toJSON: function() {
  var json = Backbone.Model.prototype.toJSON.apply(this, arguments);
  json.cid = this.cid;
  return json;
}

关于javascript - 在模板上渲染主干集合时无法获取模型的 cid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298449/

相关文章:

javascript - 如果您使用 2 级 URL,Express 会将 URL 的第一部分添加到注入(inject)中?

c++ - 模板类:针对功能的ctor->新的C++标准

c++ - 模板专门化中的多个void_t调用

c++ - 在类模板中重载运算符(链表)

javascript - 未捕获的类型错误 : Cannot read property 'push' of undefined - when trying to JointJS Hello World example

javascript - self.el 与 this.el

javascript - Vue单元测试-textContent不包含预期的propsData

javascript - 使用多个组件重用导航栏组件

javascript - 使用 Carrierwave 从 URL 保存图像

javascript - 如何在javascript中捕获jquery自定义事件