2014年6月13日 星期五

Mustache Template with Nested Array of Objects

情境:使用者點選按贊的人數時 顯示出按贊的人是誰
view: ajax 送js
contoller處理
def likedPeople
  @post = Post.find(params[:post_id] 
    respond_to do |format|
    format.js
  end
end
之後到likedPeople.js.erb
  2 var template = $('#template').html();
  3 Mustache.parse(template);   // optional, speeds up future uses
  4
  5 var arr = <%= safe(@post.liked_people.to_json) %> ;
  6
  7 var rendered = Mustache.render(template, {rows: arr})
  8
  9 $('#target').html(rendered);
先將@post.liked_people.to_js 再送到Mustache裡面去
但由於其內容是Nested Array of Objects
所以再加個
  7 var rendered = Mustache.render(template, {rows: arr})
來處理
template 就處理每個row
  3 <script id="template" type="x-tmpl-mustache">
  4   <ul class="list-like-group">
  5     {{#rows}}
  6     <li class="list-like-group-item" >
  7       <img class="like-author-photo" src="{{image.url}}" />
  8       <a href="/users/{{id}}/posts">
  9         {{name}}
 10       </a>
 11     </li>
 12     {{/rows}}
 13   </ul>
 14 </script>

沒有留言:

張貼留言