gpt4 book ai didi

javascript - RenderPartial 忽略周围的 Knockout foreach

转载 作者:行者123 更新时间:2023-12-02 16:10:06 26 4
gpt4 key购买 nike

我正在尝试结合 ASP.net、knockout 和 javascript 来呈现交互式树。树中的每个节点都有一个“项目”列表和一个“组”列表,其中每个“组”是另一个节点。以下是每个节点最简单形式的 HTML(这是 _GroupView.cshtml,因此它是递归的):

<div>
<ul id="siblingList" data-bind="foreach: childItems">
<li>
@{ Html.RenderPartial("_ItemView"); }
</li>
</ul>
<ul id="groupList" data-bind="foreach: childGroups">
<li>
@{ Html.RenderPartial("_GroupView"); }
</li>
</ul>
<br/>
<button data-bind="click: addItem">+ Item</button>
<button data-bind="click: addGroup">+ Group</button>
</div>

AddItem 和 addGroup 将新的 javascript View 模型添加到 childItems 和 childGroups 列表中,然后应通过 foreach 绑定(bind)将其绑定(bind)到 RenderPartial 创建的 View 。这对于项目来说非常有效,但对于组来说却存在问题。

我发现此页面在加载时忽略了 foreach 的 knockout ,并且即使 childItems 和 childGroups 列表为空,也始终会调用 RenderPartials。这会导致 _GroupViews 的无限递归和 StackOverflowException。

为什么 foreach 被忽略? RenderPartial 是否总是被调用一次,即使它位于条件表达式内部?

最佳答案

是的,RenderPartial 语句将始终被调用,因为它们是在服务器端扩展的。 knockout foreach 在客户端进行处理。

也许您可以在 foreach 循环中使用模板:http://knockoutjs.com/documentation/template-binding.html (note 2)

关于javascript - RenderPartial 忽略周围的 Knockout foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30310924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com