2

我需要使用敲除将 tabindex 设置为动态生成的控件。我在 UI 级别对属性进行数据绑定,但它似乎不起作用。以下是数据绑定的 HTML 代码:

  <tbody data-bind="foreach: Week1">
                            <tr class="formFields" style="vertical-align: top;">
                                <td class="formFields" width="8%" data-bind="text: Day">
                                </td>
                                <td class="formFields" width="5%" align="center">
                                    <select class="combobox" data-bind="value:Required, attr:{tabindex: 42 + Date + $index()}" >
                                        <option value="E">Eligible</option>
                                        <option value="O">On</option>
                                        <option value="F">Off</option>
                                    </select>
                                </td>
                                <td class="formFields" width="10%" align="center" >
                                   <input class="txtbox"  type="text" placeholder="S:" data-bind="value:SetupTime, attr: { tabindex: 43 + Date + $index() }/>
                                   <input class="txtbox"  type="text" placeholder="R:" data-bind="value:CloseTime, attr: { tabindex: 44 + Date + $index() }" />
                                </td>
                                <td class="formFields" width="10%" align="center">
                                   <input class="txtbox" type="text" placeholder="Min:" data-bind="value:MinHrsPerDay, attr: { title:  tabindex: 45 + Date + $index() }"/>
                                   <input class="txtbox" type="text" placeholder="Max:" data-bind="value:MaxHrsPerDay, attr: { title: tabindex: 46 + Date + $index() }"/>
                                </td>
                                <td class="formFields" width="6%" align="center">
                                    <input class="txtbox" align="middle" type="text" data-bind="value:MinWorkShift, attr: { tabindex: 47 + Date + $index()  }"/>
                                </td>
                                </tr>
                            </tbody>

这里 Date 是我的视图模型的一个属性,它表示天为 0-6。由于可以有多行,我使用 $index() 来计算每行中控件的选项卡索引。

但这是我在运行时看到的:

<input type="text" data-bind="value:SetupTime, attr: {  tabindex: 43 + Date + $index() }" placeholder="S:"  class="txtbox" tabindex="43function d(){if(0&lt;arguments.length){if(!d.equalityComparer||!d.equalityComparer(c,arguments[0]))d.H(),c=arguments[0],d.G();return this}b.r.Wa(d);return c}2">

有人可以帮我纠正这个吗?

提前致谢

4

1 回答 1

6

因为您的Date属性是一个ko.observable,所以您需要通过将其作为函数调用来获取它的值,所以使用Date().

因此,您需要将绑定更改为:

data-bind="value:SetupTime, attr: {  tabindex: 43 + Date() + $index() }" 

Date()如果你在一个表达式中使用你的 observable ,你只需要调用它43 + Date() + $index()(注意.()之后的也$index

如果你直接绑定到一个 observable,那么你就不需要 中的()like data-bind="value:Required",因为在这种情况下,KO 会自动为你“解包”这个值。

于 2013-05-09T07:10:25.083 回答