手柄模板中的html链接

时间:2013-10-29 22:40:46

标签: backbone.js handlebars.js

如果我为这样的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>

0 个答案:

没有答案