Ember 2 действия внутри каждого цикла

Рассмотрим следующее:

days_week: [
    {
        selected '',
        day: 'mon'
    },
    {
        selected '',
        day: 'wed'
    },
    {
        selected '',
        day: 'fri'
    }
]

Внутри моего шаблона я могу перебирать дни:

{{#each days_week as |day_week index|}}
    {{day_week.day}}
{{/each}}

Что дает это: пн ср пт

Теперь я хочу назначить действие, чтобы при щелчке по нему добавлялся класс, а при повторном щелчке он удалял класс....

{{#each days_week as |day_week index|}}
    <button class="{{day_week.selected}}" {{action 'toggle' day_week}}>
        {{day_week.day}}
    </button>
{{/each}}

Однако следующий код не работает (начните с добавления класса highlight)?

actions: {
    toggle: function(day_week){
        day_week.set('selected','highlight');
    }
}

и я получаю эту ошибку: TypeError: day_week.set не является функцией?


person Matt    schedule 15.08.2016    source источник
comment
опечатка в вашем вопросе, в выбранном свойстве отсутствует точка с запятой.   -  person Ember Freak    schedule 15.08.2016
comment
Почему вы думаете, что в простом старом JS-объекте будет определен метод set?   -  person    schedule 15.08.2016


Ответы (1)


Используйте 1_. Работает на любом объекте.

Пожалуйста, проверьте это

person Ebrahim Pasbani    schedule 15.08.2016
comment
Спасибо за предоставленное решение. Я пробовал различные формы this.set() и узнал, как передать 3 элемента в set: Ember.set(day_week,'selected','highlight'); Спасибо еще раз! - person Matt; 15.08.2016