如果我为这样的Backbone应用程序创建Handlebars模板(在带有字符串连接的视图内),使用handlebars.js,链接显示正常,一切都按预期工作。
template: Handlebars.compile(
'<ul>' +
'{{#each models}}<li><a href="#" class="linko" data-retail="{{attributes.question}}">{{attributes.question}} {{attributes.uk}}{{attributes._id}}</a> ' +
'<a href="#" class="updato" data-retail="{{attributes._id}}">update this</a> '+
'<a href="#" class="delete" data-retail="{{attributes._id}}">delete</a>{{/each}} </li>' +
'</ul>'
),
但是,如果我按照Lynda教程中的说明操作,我正在使用Handlebars.js并将其替换为handlebars.runtime.js,并将模板放在文件nameoftemplate.handlebars
中,如下所示,并从渲染动作中编译它像这样的观点
this.$el.html(Handlebars.templates.menu(this.collection));
menu.handlebars
<ul>
{{#each models}}<li>
<a href="#" class="linko" data-retail="{{attributes.question}}">{{attributes.question}} {{attributes.uk}}{{attributes._id}}</a>
<a href="#" class="updato" data-retail="{{attributes._id}}">update this</a>
<a href="#" class="delete" data-retail="{{attributes._id}}">delete</a>{{/each}} </li>
</ul>
然后链接不再显示。为什么html链接正在工作(如显示为链接的意义)而不是另一个?
更新 当我在console.log中没有按预期显示的模板时,它只显示了一堆列表元素,没有链接
console.log(Handlebars.templates.menu(this.collection));
<ul>
<li></li><li></li><li></li><li></li><li></li><li></li><li>r</li><li>fd</li><li>mike</li><li>afsd</li><li>fdsa</li><li>asfa</li><li>dkd</li><li>aff</li><li>asdf</li><li>mini</li><li>ff</li><li>dafs</li><li>mike</li><li>afdsaf</li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>
</ul>
但是,当我以另一种方式执行此操作时,使用在视图中定义的连接模板(而不是在单独的文件中),li
标记充满了链接和其他预期数据
console.log(this.template(this.collection));
<ul><li><a href="#" class="linko" data-retail="1">1 I heard a bloke on the train say that tomorrow's trains will be delayed.526c0e21977a67d6966dc763</a> <a href="#" class="updato" data-retail="526c0e21977a67d6966dc763">update this</a> <a href="#" class="delete" data-retail="526c0e21977a67d6966dc763">delete</a><li>