Aurelia - 在数据绑定中使用变量作为属性名称

bil*_*ler 7 javascript aurelia aurelia-binding

使用Aurelia,是否可以使用变量名来动态引用模型对象的属性名?

使用Javascript:

dow = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'];
test = {
    monday:     false,
    tuesday:    false,
    wednesday:  false,
    thursday:   false,
    friday:     false,
};
Run Code Online (Sandbox Code Playgroud)

HTML:

<label repeat.for="day of dow"><input type="checkbox" class="form-control" checked.bind="test[day]" />${day}</label>
Run Code Online (Sandbox Code Playgroud)

这导致:"TypeError:obj未定义"

bil*_*ler 8

据Aurelia Docs说:

repeat属性重复的每个项目都有几个可用于绑定的特殊上下文值:

$ parent - 目前,主视图模型的属性和方法在重复项中不可见.我们希望尽快在更新中解决这个问题.同时,您可以使用$ parent访问该视图模型.

$ index - 数组中项的索引.

$ first - 如果项目是数组中的第一项,则为True.

$ last - 如果项目是数组中的最后一项,则为True.

$ even - 如果项目具有偶数编号的索引,则为真.

$ odd - 如果项目具有奇数编号索引,则为真.

更新HTML以引用parent.new_deal [day]后,它工作正常:

<label repeat.for="day of dow"><input type="checkbox" class="checkbox-inline" checked.bind="$parent.new_deal[day]" />${day}</label>
Run Code Online (Sandbox Code Playgroud)