在 Mustache.js 模板中使用时,Rateit 插件不起作用

Posted

技术标签:

【中文标题】在 Mustache.js 模板中使用时,Rateit 插件不起作用【英文标题】:Rateit plugin not working when used in Mustache.js template 【发布时间】:2014-08-10 21:42:50 【问题描述】:

我在 Mustache.js 模板中使用了 RateIt Pugin,但它没有显示任何内容。

当我在 html 中直接使用 RateIt 时,它工作正常

下面是我的小胡子模板

<script id="category_list" type="text/template">
  <li> Rate movie_name:
      <div  class="rateit">
      </div>
  </li> 
</script>

下面是我获取模板并将其添加到主页的 JS 代码

 var data=
            movie_name:'some movie'
        ;
$.get('js/temp.html', function(template, textStatus, jqXhr) 
    var menu_list=Mustache.render($(template).filter('#category_list').html(), data);
    $('#movie_details_list').empty().append(menu_list);
    $.mobile.changePage( '#movie_details_page',  transition: "slide", changeHash: false );
);

这是我的 HTML

<div data-role="page" id="home">
    <div data-role="content">
      <ul data-role="listview" id="movie_details_list" >
      </ul>
    </div>
  </div>

【问题讨论】:

【参考方案1】:

您必须在加载模板后触发rateit()。没看懂你result/template的逻辑,做了一些调整:

var template = $('#category_list').html();
Mustache.parse(template);
var data=
   movie_name:'Stack in the Galaxy'
;
$.get('temp.html', function( result, textStatus, jqXhr ) 
    var rendered = Mustache.render( template, data );
    $('#target').html( result );
    $('#movie_details_list').append( rendered );
    $('div.rateit, span.rateit').rateit(); // <-- start up RateIt
);

【讨论】:

以上是关于在 Mustache.js 模板中使用时,Rateit 插件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

mustache.js 使用

mustache.js 数组循环的索引

使用mustache.js 模板引擎输出html

mustache.js

Mustache 使用总结

如何使用 Vue.js 在变量中渲染模板?