首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mustache选择分词

使用Mustache选择分词
EN

Stack Overflow用户
提问于 2013-03-12 02:31:42
回答 1查看 123关注 0票数 0

如果我从一个八字胡脚本和一些分词来渲染HTML,我可以根据渲染的数据来选择使用哪个分词吗?

例如:

代码语言:javascript
复制
data = {"posts": [
  {"type":"text", "body":"I'm text"},
  {"type":"image", "uri":"http://placekitten.com/200/300"}
]}

使用的基本模板如下:

代码语言:javascript
复制
<ul class="posts">
  <li>
  {{#posts}}
    {{> {{type}}}}
  {{/posts}}
  </li>
</ul>

然后是text.mustache

代码语言:javascript
复制
<p>{{body}}</p>

image.mustache

代码语言:javascript
复制
<img src="{{uri}}" />

这将呈现为:

代码语言:javascript
复制
<ul class="posts">
  <li>
    <p>I'm text</p>
  </li>
  <li>
    <img src="http://placekitten.com/200/300" />
  </li>
</ul>

我是不是漏掉了什么?我应该尝试这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 05:17:32

您在这里提出的问题属于“逻辑”方面,因此,Mustache试图避免这样的问题。这并不是说没有办法做到这一点,只是它可能不是你想的那样:)

在Mustache中,对于许多更高级的用法,正确的答案是“准备您的视图”。这也不例外。我很可能会这样做:

代码语言:javascript
复制
function addHelpers(posts) {
    for (var i = 0, l = posts.length; i < l; i++) {
        posts[i].isText  = posts[i].type === 'text';
        posts[i].isImage = posts[i].type === 'image';
        posts[i].isVideo = posts[i].type === 'video';
    }
    return posts;
}

data = {"posts": [
  {"type":"text", "body":"I'm text"},
  {"type":"image", "uri":"http://placekitten.com/200/300"}
]}

data.posts = addHelpers(data.posts);

然后,您的基本模板将如下所示:

代码语言:javascript
复制
<ul class="posts">
  {{# posts }}
    <li>
      {{# isText  }}{{> text  }}{{/ isText  }}
      {{# isImage }}{{> image }}{{/ isImage }}
      {{# isVideo }}{{> video }}{{/ isVideo }}
    </li>
  {{/ posts }}
</ul>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15345914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档