Knockout js某些部分无法渲染

时间:2013-10-31 15:33:29

标签: javascript knockout.js requirejs

我有一个非常奇怪的淘汰js问题。会发生的是,只有每个div中的第一个标记被渲染到DOM,其他标记只是......不会。最糟糕的部分是:它不会产生任何错误,其余的dom正确呈现,其次它发生的大多数但不是所有的时间?任何猜测?

正在呈现的模板是:

<div class="row">        
    <div>
        <span data-bind="text: $data.topRows()[0].text() + $data.topRows()[1].text()" />            
        <input data-bind="value: $data.topRows()[0].inputText"  /> <!-- this fails to go into the dom sometimes and every row past the first span and inside this div -->
    </div>
    <div>
        <span data-bind="text: $data.topRows()[1].text()" />    <!-- this is renderdd -->        
        <input data-bind="text: $data.topRows()[1].inputText" /> <!-- this is not -->
    </div>
</div>

我知道这不是很多,但很好,我无言以对。 RequireJs用于要求所有文件。

2 个答案:

答案 0 :(得分:1)

value

,您应该使用text绑定而不是<input>
<span data-bind="text: $data.topRows()[0].text() + $data.topRows()[1].text()" />            
<input data-bind="value: $data.topRows()[0].inputText"  /> 

<span data-bind="text: $data.topRows()[1].text()" />        
<input data-bind="value: $data.topRows()[1].inputText" />   

JSFiddle DEMO

答案 1 :(得分:1)

您提出的代码段中存在各种问题:

  • span元素在自我关闭时效果不佳,请改用<span data-bind="..."></span>;
  • 您没有正确关闭第一条评论
  • 正如@ilya所说,您可能希望value绑定输入
  • 你输入第二个输入错误,它以<inputdata-bind...开头(缺少空格

如果我解决了您的代码will work fine中的这四个问题。