2

我正在使用KnockoutjQuery tmpl。绑定到“字段字符串”模板中的数据不起作用。

<div data-bind="template: { name: 'userField', foreach: userFields }"></div>
<script type="text/html" id="userFilter">
   <div data-bind="template: { name: 'field-string', data: { field: data, index: $index } }">
   </div>
</script>

<script type="text/html" id="field-string">
   <input type="hidden" value="fld.${$data.index}" />
   <input type="text" data-bind="value: field.data" />
</script>

userFields - 页面 viewModel 内的 observableArray,由以下对象组成:

{
   data: ko.observable("")
   fieldName: "Blah-blah"
}

请帮忙。谢谢!

更新:这是小提琴(不知道如何添加更多库:(。我还需要 jquery.tmpl 和 jquery)http://jsfiddle.net/WBvpp/

4

3 回答 3

2

这是你想要的 :

<div data-bind="template: { name: 'userField', foreach: userFields }"></div>
<script type="text/html" id="userField">
   <div data-bind="template: { name: 'field-string', data: {userData: $data, index: $index } }">
   </div>
</script>

<script type="text/html" id="field-string">
   <input type="text" data-bind="value : $data.index" />
    <span data-bind="text: $data.userData.field" ></span>
   <input type="text" data-bind="value :$data.userData.data" />

</script>

我希望它有所帮助。

见小提琴

于 2013-06-28T09:07:03.620 回答
2

问题在于将数据对象错误地传递给模板。

这是它的样子:

<div data-bind="template: { name: 'field-string', data: { field: $data, index: $index } }">
</div>

(字段:$data - 带有美元符号)

于 2013-06-28T09:33:54.410 回答
0

这完全取决于您何时调用 ko.applyBindings。如果是在模板生成之前,则敲除对模板中的绑定没有任何作用。您能否提供更多代码或小提琴?

于 2013-06-28T08:55:16.103 回答