Emberjs-1.0.0-rc.6 использует перечисляемый список событий, происходящих в определенную дату
Когда я определяю действие контроллера для отображения дат, происходящих с определенной датой, оно работает правильно, но если я преобразую это действие контроллера в свойство, оно перестает отображать дату, происходящую для определенного события.jsfiddle
App.EventsController = Em.ArrayController.extend({
todayEvent: function(date){
return this.get('content').filter(function(event) {
return (moment(event.get('start')).unix() == moment(date).unix());
});
}
});
Я могу получить экземпляр контроллера:
u = App.__container__.lookup("controller:events")
на событии 25-го есть 2 события, и я могу получить их с
u.todayEvent(new Date('2013-07-25').toString())
который правильно возвращает
[> Class, > class]
Но в контроллере CalendarEvent я хочу отображать события для конкретной даты, как и выше, но на этот раз с помощью свойства computed-property, поэтому я переопределяюtodayEvent Как вычисляемое свойство, как показано ниже, только в этот раз оно возвращает только true или false, вместо этого возвращая объекты класса, связанные с событиями того дня.
Свойство date устанавливается с помощью controllerFor в хуке сериализаторов маршрутизатора, вместо того, чтобы передавать его, как мы делали, когда определяли todayEvent как действие контроллера ранее.
App.CalendarEventController = Em.ObjectController.extend({
date: null,
needs: ['appointments'],
todayEvent: function(){
var _self = this;
var appoint = _self.get('controllers.appointments');
var appCont = appoint.get('content');
return appCont.map(function(appointee) {
return (moment(appointee.get('event.start')).unix() == moment(_self.get('date')).unix());
});
}.property('date')
});
Теперь я нажимаю ссылку для встречи, затем ссылку на календарь и затем нажимаю одну из дат в календаре красным цветом, чтобы ловушка сериализатора могла установить дату контроллера, и затем я захожу в консоль:
u = App.__container__.lookup("controller:calendarEvent")
попробуйте получить события, происходящие в этот день в консоли, с помощью:
u.get('todayEvent')
Я либо получаю пустой массив, как это[] или если я отфильтрую, используякарта() вместофильтр()затем возвращается[ложь, ложь, ложь]