Filter 在敲除中将函数数据传输到可观测阵列
我有数据要过滤。然后,这些数据将被放入foreach循环中。 例如,如何使用函数获取这些数据?以下是视图:Filter 在敲除中将函数数据传输到可观测阵列,filter,knockout.js,Filter,Knockout.js,我有数据要过滤。然后,这些数据将被放入foreach循环中。 例如,如何使用函数获取这些数据?以下是视图: enter code here<ul> <!-- ko foreach: {data: Menus} --> <!-- ko if: TitleId === 0 && Sub === true --> <li> <i class="fa fa-home"></i><br><sp
enter code here<ul>
<!-- ko foreach: {data: Menus} -->
<!-- ko if: TitleId === 0 && Sub === true -->
<li>
<i class="fa fa-home"></i><br><span data-bind="text: Name"></span>
<ul>
<!-- ko foreach: {data: $parent.childMenus} -->
<li>
<a data-bind="attr: { href: $data.Url}">
<span data-bind="text: $data.Name"></span>
</a>
</li>
<!-- /ko -->
</ul>
</li>
<!-- /ko -->
<!-- ko if: TitleId === 0 && Sub === false -->
<li>
<span data-bind="text: Name"></span>
</li>
<!-- /ko -->
<!-- /ko -->
您可以在数组对象上使用本机javascript的
filter
方法,如下所示:
self.childMenus(self.Menus().filter((i) => i.someField == myDataToFilter ));
筛选器将返回一个数组,其中的项与您输入的条件匹配,如果未找到任何项,则将返回一个空数组
因此,您所要做的就是对基础数组进行
筛选
,并将结果分配给childMenus数组。对不起,我应该先打个招呼,谢谢您的帮助:)确保检查菜单
上是否有数组,即使是空数组,等等,但是你应该了解你的问题的概念,并相应地调整。谢谢你的回答。在循环中,此筛选器数组无法动态工作。我希望子菜单在循环中的每个菜单项下溢出。好的,但是为了帮助您,您必须给出模型定义,以便我们能够正确地编写一些内容。我给你的只是一个起点,你可以用它把所有的子菜单放到父菜单中,如果你是这个意思的话。我编辑了我的问题。必须动态刷新parent.childmenu。因此,每个子菜单序列将根据单个父id值进行更改。非常感谢你。
self.childMenus(self.Menus().filter((i) => i.someField == myDataToFilter ));