2013-12-08 3 views
0

Ember에있는 ObjectController에서 값을 반환 할 수있는 방법을 알고 싶었습니다. ember가 objectcontrollers를 루핑 할 수 없다는 것을 알고 있지만 내 컨트롤러의 정보가 내 템플릿에 표시되어야합니다. 여기 Ember의 컨트롤러 오버 루핑

<script type="text/x-handlebars" id="summary"> 
    <table class="table table-bordered table-striped"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Total Expenses</th> 
       <th>Date</th> 
      </tr> 
     </thead> 
     <tbody> 
      {{#each model}} 
       <tr> 
        <td>{{name}}</td> 
        <td>{{expense}}</td> 
        <td>{{formattedDate date}}</td> 
       </tr> 
      {{/each}} 
     </tbody> 
    </table> 
</script> 

이 템플릿은 컨트롤러 : 여기

내가 데이터하고자하는 템플릿의

App.SummaryController = Ember.ObjectController.extend({ 
    needs: ['expenses'], 
    userExpense: function() { 
     var userExpenseMap = {} 
     var expenses = this.get('controllers.expenses'); 

     expenses.forEach(function(expense){ 

      if(userExpenseMap[expense.get('whoPaid')]){ 
       userExpenseMap[expense.get('whoPaid')] += expense.get('amount'); 
      } 

      else{ 
       userExpenseMap[expense.get('whoPaid')] = expense.get('amount'); 
      } 
     }); 

     userExpenseList = [] 

     for(var key in userExpenseMap){ 

      var obj = {}; 

      obj.name = key; 
      obj.expense = userExpenseMap[key]; 

      userExpenseList.push(obj); 
     } 

     // console.log(userExpenseList); 

     return userExpenseList; 
    }.property('[email protected]') 
}); 

답변

1

당신은 컨트롤러의 속성에 반복 할 수 있지만, 그것은이어야합니다 정렬. 따라서 템플릿에 사용할 수 있습니다. {{#each userExpense}} :

<script type="text/x-handlebars" id="summary"> 
    <table class="table table-bordered table-striped"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Total Expenses</th> 
       <th>Date</th> 
      </tr> 
     </thead> 
     <tbody> 
      {{#each userExpense}} 
       <tr> 
        <td>{{name}}</td> 
        <td>{{expense}}</td> 
        <td>{{formattedDate date}}</td> 
       </tr> 
      {{/each}} 
     </tbody> 
    </table> 
</script> 
+0

내 질문을 게시 한 후 그 작업이 정확히 수행되었지만 작동하지 않습니다. – vjrngn

+0

안녕하세요 marcio 감사합니다 :) 작동합니다 .. 내 페이지를 상쾌하게하는 ember와 함께 몇 가지 문제가있었습니다 .. 내가 전혀 도움이 필요 없다고 생각하지만, 정말 빠른 답장을 고맙게 생각합니다! 다시 한 번 감사드립니다 – vjrngn

+0

문제 없습니다. 도와 줘서 기뻐요. –

관련 문제