从集合中拉出字符串时,如何使用 Meteor 的助手对字符串进行切片?
How can I slice a string with Meteor's helpers while pulling it from a collection?
我正在尝试显示每个博客的前 150 个字符 post,因为它们在循环中迭代。 post 显示在存档页面上,如下所示:
<ul>
{{#each listPosts}}
<li>
<h4>{{postDate}}</h4>
<a href="/blog/{{_id}}"><h1>{{postTitle}}</h1></a>
{{#markdown}}{{postBody}}{{/markdown}}
</li>
{{/each}}
</ul>
像这样,postBody 被完整返回,但我想我可以在 150 个字符后分割字符串的剩余部分并显示文本的缩短版本。
Template.Blog.helpers({
"listPosts": function() {
return Posts.find()
},
"synopsis": function() {
var string = postBody.slice(0, 150);
return string
}
});
我的想法是用 {{synopsis}}
替换 {{postBody}}
并呈现文本的缩短版本,但 "synopsis" 似乎无法访问集合,因为 listPosts
已完成。
如何访问 postBody 的值,对字符串进行切片,并在遍历每个列表项时注入新值?
您应该有权访问适当的数据上下文。因此,如果 listPosts
对象具有 postBody
属性,您可以通过 this.postBody
:
访问 postBody
Template.Blog.helpers({
"listPosts": function() {
return Posts.find();
},
"synopsis": function() {
var string = this.postBody.slice(0, 150);
return string;
}
});
如果您只是显示数据,您可以创建一个车把助手:
Template.Blog.helpers({
"listPosts": function() {
return Posts.find();
},
"first150": function(postBody) {
return postBody.slice(0, 150);
}
});
并在您的模板中
<ul>
{{#each listPosts}}
<li>
<h4>{{postDate}}</h4>
<a href="/blog/{{_id}}"><h1>{{postTitle}}</h1></a>
{{#markdown}}{{first150 postBody}}{{/markdown}}
</li>
{{/each}}
</ul>
我正在尝试显示每个博客的前 150 个字符 post,因为它们在循环中迭代。 post 显示在存档页面上,如下所示:
<ul>
{{#each listPosts}}
<li>
<h4>{{postDate}}</h4>
<a href="/blog/{{_id}}"><h1>{{postTitle}}</h1></a>
{{#markdown}}{{postBody}}{{/markdown}}
</li>
{{/each}}
</ul>
像这样,postBody 被完整返回,但我想我可以在 150 个字符后分割字符串的剩余部分并显示文本的缩短版本。
Template.Blog.helpers({
"listPosts": function() {
return Posts.find()
},
"synopsis": function() {
var string = postBody.slice(0, 150);
return string
}
});
我的想法是用 {{synopsis}}
替换 {{postBody}}
并呈现文本的缩短版本,但 "synopsis" 似乎无法访问集合,因为 listPosts
已完成。
如何访问 postBody 的值,对字符串进行切片,并在遍历每个列表项时注入新值?
您应该有权访问适当的数据上下文。因此,如果 listPosts
对象具有 postBody
属性,您可以通过 this.postBody
:
postBody
Template.Blog.helpers({
"listPosts": function() {
return Posts.find();
},
"synopsis": function() {
var string = this.postBody.slice(0, 150);
return string;
}
});
如果您只是显示数据,您可以创建一个车把助手:
Template.Blog.helpers({
"listPosts": function() {
return Posts.find();
},
"first150": function(postBody) {
return postBody.slice(0, 150);
}
});
并在您的模板中
<ul>
{{#each listPosts}}
<li>
<h4>{{postDate}}</h4>
<a href="/blog/{{_id}}"><h1>{{postTitle}}</h1></a>
{{#markdown}}{{first150 postBody}}{{/markdown}}
</li>
{{/each}}
</ul>