use*_*810 14 javascript templates handlebars.js
我是Handlebars模板系统的新手,这是我与Handlebars合作的第一个项目.我创建了简单的模板:
<script id="article_list_template" type="text/x-handlebars-template">
{{#each this}}
<div class='article'>
<a href='article.php?id={{id_news}}' data-article_id='{{id_news}}'>
<h1>{{title}}</h1>
</a>
<p> {{{content}}} </p>
<div style='clear: both;'> </div>
</div>
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
回来content很长.我希望它更短,例如150个字符.我试图使用JavaScript substring()方法如下:
<p> {{{content.substring(0,150)}}} </p>
但它显然没有用.你能给我一些如何解决这个问题的技巧吗?谢谢
编辑:好的,问题解决了:我已经在PHP中完成了,所以返回的内容现在有适当的长度:
foreach ($articles as $a) {
$a->content = cut_text( $a->content, 30);
}
Run Code Online (Sandbox Code Playgroud)
小智 28
您将要在javascript中创建Handlebars帮助程序以执行子字符串代码:
Handlebars.registerHelper('trimString', function(passedString) {
var theString = passedString.substring(0,150);
return new Handlebars.SafeString(theString)
});
Run Code Online (Sandbox Code Playgroud)
然后,在您的模板中,您将其称为:
<p> {{{trimString content}}} </p>
Run Code Online (Sandbox Code Playgroud)
Nai*_*tik 22
我使用值作为选项,起始值以及作为参数形式模板传递的结束值.试试这个:
Handlebars.registerHelper('trimString', function(passedString, startstring, endstring) {
var theString = passedString.substring( startstring, endstring );
return new Handlebars.SafeString(theString)
});
Run Code Online (Sandbox Code Playgroud)
在模板中:
<p>{{{trimString value 0 300}}}</p>
Run Code Online (Sandbox Code Playgroud)
它将打印该值的前300个字符.希望这对你有所帮助.