淘汰无容器'与'绑定无法正常工作

时间:2013-08-16 07:32:19

标签: javascript knockout.js durandal

这个无容器with绑定不会像我期望的那样设置bindingContext;它仍然设置为梯形图的包含父级。

<!-- ko with:ladder -->
<table>
    //Context here is the $root object, not $root.ladder
    //some foreach binding here
</table>

<a  href="#" data-bind="click: addPages">Add 4 pages</a>
<!-- /ko -->

这个容器式方法可以正常工作。

<table class="ladder-table" data-bind="with:ladder">
    //the context is correctly set to ladder in this instance
    //some foreach binding here
</table>
<br />
<a  href="#" data-bind="click: ladder.addPages">Add 4 pages</a>

任何人都知道这是怎么回事?谷歌没有给出任何结果。

1 个答案:

答案 0 :(得分:0)

问题在于Durandal,而不是Knockout,因为这个答案解释道: containerless statements of knockoutjs is not working in hottowel SPA?

简而言之,Durandal每个视图只允许一个根元素。

goodView.html

<div>
    <--ko foreach:stuff-->
      //stuff
    <--/ko-->
</div>

badView.html

<div>
   <stuff/>
</div>
<--ko foreach:stuff-->  //these elements are stripped out
  //stuff
<--/ko-->

谢谢@nemesv