0

ノックアウト js 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 から一重引用符を外してみましたが、まだ何もありません。

また、2 番目のデータ バインド (CableCode に関するもの) をオフにしようとしたので、最初のデータ バインド (isSelected) しか確認できませんが、それでも同じエラーが発生します。

私もIE8を使用しています。

4

1 に答える 1

0

なぜバインディングパラメータの周りに$があるのですか?

checked: ${isSelected}

それを削除して、再試行してください。

checked: isSelected

そして、それが機能するかどうかを確認します。

于 2013-03-08T15:26:31.400 に答える