小胡子和哈姆尔

fl0*_*00r 5 ruby haml ruby-on-rails sinatra mustache

我有这个haml/mustache模板:

{{#data}}
  ok
  {{#items}}
    {{#item}}
      %b ID: {{id}}
    {{/item}}
  {{/items}}
{{/data}}
Run Code Online (Sandbox Code Playgroud)

我有Illegal nesting: nesting within plain text is illegal错误.

我在Sinatra渲染它

Mustache.render(haml(:index), hash)
Run Code Online (Sandbox Code Playgroud)

War*_*Hog 2

我不确定是否使用 Sinatra 渲染,但使用以下命令:

cat example.yml foo.haml.mustache | mustache | haml -e
Run Code Online (Sandbox Code Playgroud)

这个数据文件example.yml

---
data:
  - items:
    - item:
      - id: 1
      - id: 2
      - id: 3
---    
Run Code Online (Sandbox Code Playgroud)

和模板(foo.haml.mustache):

{{#data}}
#ok
{{#items}}
{{#item}}
  %b ID: {{id}}
{{/item}}
{{/items}}
{{/data}}
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

<div id='ok'>
  <b>ID: 1</b>
  <b>ID: 2</b>
  <b>ID: 3</b>
</div>
Run Code Online (Sandbox Code Playgroud)

请注意 *.mustache 文件中的缩进级别。希望这对您有帮助。

  • 是的,我明白,我可以删除所有缩进(制表符),这样它就可以正常工作。但这是可怕的阅读:没有制表符的小胡子:)所以实际的问题是让 haml 与小胡子及其缩进一起工作 (2认同)