0

我正在使用 knockoutjs v1.2.0 和 Jquery 模板。我会使用 data-bind: foreach 等,但我发现它只出现在 knockoutjs 的 v2.0.0 中。所以我将不得不使用 jquery 模板。

我的 aspx 文件有以下代码:

....
....
....
<tbody data-bind="template: {name: 'tasksTemplate', foreach: form.model.tasks}">                           
                            </tbody>                                
                        </table>
                    </td>
                </tr>
            </table>
        </div>
    </div>
    <script id="tasksTemplate" type="text/html">
                                <tr>
                                    <td>
                                        <input id="Selected" type="checkbox" data-bind="checked: ${isSelected}" />
                                    </td>
                                    <td>
                                        <select id="CableCode" data-bind="options: CableCodes, value: ${CableCodeId}, optionsText: 'Code', optionsValue: 'Id'" style="width: 95%"></select>
                                    </td>
                                    <td>
                                        <input type="text" />
                                    </td>
                                    <td>
                                        <input type="text"/>
                                    </td>
                                    <td>
                                        <select style="width: 95%"></select>
                                    </td>
                                    <td>
                                        <input type="text" class="datePicker" />
                                    </td>
                                    <td>
                                        <input type="text" class="datePicker" disabled="disabled" />
                                    </td>
                                    <td>
                                        <input type="text" disabled="disabled" />
                                    </td>
                                </tr>   
                             </script> 
</asp:Content>

并且我保存表单对象(包含所有函数和可观察对象等)的 js 文件具有以下代码:

....
....    
self.tasks = ko.observableArray([]);
    self.addTask = function () {
        self.tasks.push({'isSelected': '', 'CableCodeId': '' });
    };
....
....

但是,即使当我加载页面时,当我尝试使用 addTask 函数向我的表中添加一行时,我也没有收到任何 js 错误,但我得到了一个错误:预期的标识符、字符串或数字。

我尝试从 isSelected 和 CableCodeId 中去掉单引号,但仍然没有。

我还尝试关闭第二个数据绑定(关于 CableCode 的那个),所以我只能检查第一个(isSelected)但我仍然得到同样的错误。

我也在使用 IE 8。

4

1 回答 1

0

为什么你的绑定参数周围有一个 $ ?

checked: ${isSelected}

删除它,然后重试。

checked: isSelected

看看这是否有效。

于 2013-03-08T15:26:31.400 回答