2013-03-04 72 views
0

我正在使用knockoutjs v1.2.0和Jquery模板。我会使用data-bind:foreach等,但我发现它只出现在knockoutjs的v2.0.0中。所以我必须使用jQuery模板。使用Jquery模板填充来自observableArray的表行

我的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

回答

0

为什么您对您的约束力PARAMS一个$?

checked: ${isSelected} 

删除并重试。

checked: isSelected 

然后看看是否有效。