使用Knockout动态添加dom元素

时间:2012-06-19 05:16:57

标签: javascript knockout.js

我在寻找解决问题的方法方面走到了尽头。 问题是,我有一个.xml文件,其中包含有助于动态生成html页面的数据。数据看起来像这样。 <?xml version="1.0"?><Controls><TextInput XmlNodeBoundTo="TEXTINPUT1" Name="TEXTINPUT1" Id="T1></TextInput><TextInput XmlNodeBoundTo="TEXTINPUT2" Name="TEXTINPUT2" Id="T2"></TextInput></Controls>

现在我的问题是每个控件如果tagName是“TextInput”,那么我必须在html页面中添加一个输入<input/>控件。这是我用基本的javascript实现的,但我想用KO实现,因为我是KO的新手,我不能理解那么多。 所以,任何类似于我的问题的教程都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

首先你需要制作一个模板然后将视图模型绑定到数据请参考下面的psedo代码

<tbody data-bind="template: { name: 'comissionTemplate', foreach: Comissions }"></tbody> <script type="text/html" id="comissionTemplate">
    <tr >
        <td><input type='text'  data-bind="value: "based on object passed to obseravable array set the value here"/></td>
</tr>

viewModel = {
Comissions: ko.observableArray([])}
ko.applyBindings(viewModel);

因此,您需要解析xml并将数据推送到commisions中,然后绑定到script标签