【问题标题】:Populating table rows from an observableArray using Jquery Templates使用 Jquery 模板从 observableArray 填充表行
【发布时间】:2013-03-04 14:24:15
【问题描述】:

我正在使用 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。

【问题讨论】:

    标签: knockout.js jquery-templates


    【解决方案1】:

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

    checked: ${isSelected}
    

    删除并重试。

    checked: isSelected
    

    然后看看这是否有效。

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 2015-09-13
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2019-04-13
      • 2019-08-04
      • 1970-01-01
      • 2012-11-28
      相关资源
      最近更新 更多