0

如果我为这样的 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&#x27;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>
4

0 回答 0