使用把手模板中的脚本标签的星级评定,用于提前输入建议

时间:2018-08-14 22:28:56

标签: javascript jquery handlebars.js typeahead.js

我知道必须有一种方法可以完成我想要的东西,无论是哪种方法。即使我必须创建一个函数将星星一一吐出...

我正在使用typeahead.js并具有很好的建议结果(车把模板),除了我想使用在我的网站上使用的.js星级评分脚本添加星级结果。但是,为了显示表示此结果平均评分的只读星号,我需要在车把模板代码中使用内联jquery。但是,无论何时我尝试要么提前输入功能中断,什么都不会显示给用户,否则,如果我尝试调整代码并显示建议,则模板代码中显然没有显示jquery代码。我认为这是因为车把编译器会忽略script标签等。

有替代解决方案吗?

代码示例:

 $('#remote .typeahead').typeahead(null, {


  minLength: 2,

  source: festy,
   templates: {
      footer: ['<div style="border=top:1px solid #000;text-align:center;font-size:12px;">Don\'t see the strain you want to review? <br><a href="#" class="add-strain" style="text-decoration:underline;">Click here to add it to our database</a></div>'],
    empty: [
      '<div style="border=top:1px solid #000;text-align:center;font-size:12px;">No strain matches<br><a href="#" class="add-strain" style="text-decoration:underline;">Click here to add it to our database</a></div>'
    ].join('\n'),
    suggestion: Handlebars.compile('<div class="row" id="star-row-{{id}}"><div class="col-xl-3 col-lg-3 col-md-3 col-sm-3 col-3"><img src="{{file}}" style="width:100%;"></div><div class="col-xl-9 col-lg-9 col-md-9 col-sm-9 col-9"><strong>{{name}}</strong><br><div id="stars-{{id}}" class="stars" style="top:-10px;"></div><span style="font-size:14px"><i class="fa fa-leaf"></i> <i>{{type}}</i> <i class="fa fa-star-half-o"></i> {{review_count}} <i class="fa fa-eye"></i>{{views}} Overall avg:{{overallaverage}}<div id="stars-{{id}}" class="stars-selections" style="top:-10px;"></div></span></div></div><script>$("#stars-{{id}}").rateYo("option", "rating", {{overallaverage}});</script><div id="stars-1" class="stars" style="top:-10px;"></div>')
  },
  displayKey: 'name',
});

所以我想我想做的是在模板中添加以下内容:

$(“#stars-{{id}}”)。rateYo(“ option”,“ rating”,{{overallaverage}});

星星-{{{id}}”必须与相应的结果ID匹配,这样才能正常工作...但是如果您正在阅读此书,您已经知道。

是否有一种方法可以在外部使用或在事实之后添加此jQuery代码,用于弹出到建议框中的结果?

0 个答案:

没有答案