【问题标题】:Knockout binding inside a template does not work模板内的敲除绑定不起作用
【发布时间】:2013-06-28 08:45:42
【问题描述】:

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

【问题讨论】:

  • 请你做一个小提琴,告诉我们你得到了什么错误?
  • 完全没有错误。在小提琴上工作

标签: knockout.js jquery-templates


【解决方案1】:

这是你要找的吗:

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

希望对你有帮助。

See fiddle

【讨论】:

  • 抱歉,我的代码看不出有什么不同。啊索引对我来说没问题。我需要绑定 field.data
【解决方案2】:

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

它应该是这样的:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 这是我的小提琴。如何在其中包含更多 js 库? jsfiddle.net/WBvpp
    • 可以添加外部资源,并提供和url
    猜你喜欢
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 2015-01-05
    • 2015-06-05
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2014-09-22
    相关资源
    最近更新 更多