【发布时间】:2014-11-10 20:41:31
【问题描述】:
我制作了一个组件,用于显示公司或员工的营业时间的营业时间小部件。
{{hours-widget hours=businessHours}}
businessHours 是 Company 和 Employee 模型上的一个数组属性,每个工作日可能有多个打开/关闭时间。
[
{
"wday": 0,
"open": "09:00",
"closed": "12:00"
},
{
"wday": 0,
"open": "13:00",
"closed": "20:00"
},
{
"wday": 4,
"open": "09:00",
"closed": "17:00"
},
{
"wday": 5,
"open": "09:00",
"closed": "17:00"
}
]
我想在我的组件模板中做的是这样的:
{{#each wday in weekDays}}
<div class="weekday-row">
<h3>{{formattedWeekday}}</h3>
{{#each hour in filteredHours}}
<div class="time">
open: {{hour.open}}
closed: {{hour.closed}}
{{/each}}
</div>
{{/each}}
我的问题是我不知道如何访问计算属性 formattedWeekday 和 filteredHours 中的工作日。
我想要的是这样的:
formattedWeekday: function() {
moment.weekdays(@get('wday'))
}.property('wday')
还有一个属性,只返回当前工作日的条目。
filteredHours: function() {
@get('hours').filter(function(item) {
item.wday == @get('wday')
})
}.property('hours', 'wday')
感谢您的帮助!
【问题讨论】:
-
businessHours传递到哪里了?你能发布一些jsbin吗? -
这取决于范围。这可以在公司或员工的编辑/显示模板中。这两个模型都有一个“businessHours”属性,它是一个数组,与时间条目一样。
-
好的,我明白了。什么是过滤时间?您是否尝试将参数传递给它以从公司和员工控制器中过滤 BusinessHours?
-
我还为
filteredHours添加了一个示例。在这里,我想根据当前工作日过滤添加为组件参数的小时列表。
标签: javascript ember.js