如何处理 ember 复选框绑定

How to handle ember checkbox binding

我是 ember 的新手,我对复选框绑定有疑问。

这是我的 js && hbs :

 CompletedToday(id){
          var today = new Date().toISOString().slice(0, 10);
           this.get('DS').findRecord('menu',id).then((recs) => {
              recs.get('completedDates').pushObject(today);
              recs.save();
            });
      },
{{#each menu}}


{{input type="checkbox" checked=this.checkCompleteToday click=(action "CompletedToday" menu.id)}}


{{/each}}

Menu 是一个模型,有一个名为 Completed date 的属性,它是一个包含日期列表(YYYY-MM-DD)的数组,应该有一个构造函数来检查它是否在今天完成,如果完成, 选中该菜单的复选框。如果没有,用户可以检查特定的复选框我不知道如何实际处理这个,我需要为菜单创建另一个属性吗?

如有任何建议,我们将不胜感激

首先,您需要计算 属性,如果模型中包含今天,则 returns 为真或假。

您应该在您的组件中创建一个计算的 属性,例如:

checked = computed('model', function() {
    // pseudocode bellow
    return (TODAY in array)
})

现在,如果未选中(TODAY 不在数组中),您应该可以插入到数组中。 在你的 hbs:

{{input type="checkbox" checked=checked click=(action "CompletedToday" menu.id)}}

(您不应该使用 "this" 来引用 属性)

如果 "CompletedToday" 在您的组件操作中,它应该可以工作。 希望对您有所帮助