在数组的 table 行内绑定 Select 未在激活时绑定

Bind Select inside of table row from array not binding on activate

在 Aurelia(最新的测试版)中,有没有人尝试在行绑定到数组的 table 中绑定 select 元素?我认为它不适用于初始加载(activate() 事件)。

示例代码如下:

<tbody>
    <tr repeat.for="item of variations">
        <td>
            <input type="text" class="form-control input-sm" value.bind="item.name" />
        </td>
        <td>
            <select class="form-control input-sm" value.bind="item.controlId">
                <option>Select...</option>
                <option value="1">DropdownList</option>
                <option value="2">RadioList</option>
                <option value="3">Checkboxes</option>
            </select>
        </td>
    </tr>
</tbody>

在 viewmodel 中,变体列表在 activate() 事件中是这样构建的:

this.variations.forEach(v => {
        let variation = new Variation();

        variation.value = v.value;
        variation.text = v.text;
        variation.control = v.displayType;

        self.variations.push(variation);
});

其余属性,即。文本输入,加载时显示良好。并且同一视图在此 table 之外具有常规 selects,并且它们都在加载时正确绑定(即,根据以编程方式设置的值显示正确的 select 选项)。

item.controlId是一个数字吗?如果是这样,可能发生的情况是使用 === 将数值与选项元素的字符串值进行比较。您需要确保选项值是数字:

而不是 <option value="1"> 使用 <option model.bind="1">