[英]How to access field of model in Ember.js from each loop
我有下一條路線:
Calendar.DateIndexRoute = Ember.Route.extend({
model: function(data) {
return {arr:getCalendar(data),
activeYear: data.year,
activeMonthNumber: data.month,
activeDay: data.day};
},
setupController: function(controller, model) {
controller.set('model', model.arr);
controller.set('activeYear', model.activeYear);
controller.set('activeMonthNumber', model.activeMonthNumber);
controller.set('activeDay', model.activeDay);
}
});
arr
是數組的數組。 然后在index.html
執行以下操作:
{{#each model}}
<tr>
{{#each}}
{{#view Calendar.DateIndexView}}
{{#if isToday}}
<td class="today">
{{number}}
{{else}}
{{#if isSelected}}
<td class="selected">
{{else}}
<td class="day">
{{/if}}
{{number}}
{{/if}}
</td>
{{/view}}
{{/each}}
</tr>
{{/each}}
但是我需要在每個循環中訪問activeYear
和activeMonth
字段:
{{#each model}}
<tr>
{{#each}}
access fields activeYear and activeMonth here
{{/each}}
</tr>
{{/each}}
我嘗試使用{{with}}
組件,但無法正常工作。 另外,我嘗試使用setupController,但沒有幫助。
我解決了這個問題,如下所示:
setupController
結果代碼是
{{#each item in model.arr}}
<tr>
{{#each day in item}}
{{#if day.isToday}}
<td class="today" {{action changeDay model.activeYear model.activeMonthNumber day.number}}>
{{day.number}}
{{else}}
{{#if day.isSelected}}
<td class="selected" {{action changeDay model.activeYear model.activeMonthNumber day.number}}>
{{else}}
<td class="day" {{action changeDay model.activeYear model.activeMonthNumber day.number}}>
{{/if}}
{{day.number}}
{{/if}}
</td>
{{/each}}
</tr>
{{/each}}
您的if語句對於選擇類不是必需的
App.DayController = Em.ObjectController.extend({
notToday = Ember.computed.not('isToday'),
notSelected = Ember.computed.not('isSelected'),
isSelectedClass = Ember.computed.and('isSelected', 'notToday'),
isNotSelectedClass = Ember.computed.and('notSelected', 'notToday')
});
{{#each day in item itemController='day'}}
<td {{bind-attr class="day.isToday:today day.isSelectedClass:selected day.isNotSelectedClass:day"}} {{action changeDay model.activeYear model.activeMonthNumber day.number}}>
{{day.number}}
</td>
{{/each}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.