Knockout.js 比较两个可观测阵列可以得到不同元素的空inspite
我试图比较两个可观测阵列。 但是ko.utils.comparararays无法为我提供两个可观测阵列之间的不同元素 这是我的Knockout.js 比较两个可观测阵列可以得到不同元素的空inspite,knockout.js,Knockout.js,我试图比较两个可观测阵列。 但是ko.utils.comparararays无法为我提供两个可观测阵列之间的不同元素 这是我的 我是否错过了一些东西。应该是ko.utils.comparararlays(self.x(),self.y()) x和y没有声明。只有self.x和self.y是。它们也是可观察的数组,因此需要对它们进行评估,即self.x() 之后,您将注意到这些差异是在对象中构建的,其中status属性包含差异,value包含该值。要仅显示添加的项目,您可以在视图中使用if: &l
我是否错过了一些东西。应该是
ko.utils.comparararlays(self.x(),self.y())
x和y没有声明。只有self.x和self.y是。它们也是可观察的数组,因此需要对它们进行评估,即self.x()
之后,您将注意到这些差异是在对象中构建的,其中status属性包含差异,value包含该值。要仅显示添加的项目,您可以在视图中使用if:
<div class='liveExample'>
<ul data-bind="foreach:differ">
<!-- ko if: status == 'added' -->
<li data-bind="text:'\'' + value + '\''"></li>
<!-- /ko -->
</ul>
</div>
此js小提琴将显示添加的项目:谢谢。我的坏消息是我更新错了。新的。正如你们所看到的,我无法得到数组之间不同的元素,所以当它显示object时,就意味着差异在object中。找到它的简单方法是将它放在浏览器的控制台上。然后在浏览器中打开开发人员工具,您可以看到对象的结构。然后,您可以根据我看到的不同元素的添加状态调整视图。那么所有不同的元素都将具有“添加”状态?如果是这样,我们可以过滤掉“添加”状态的元素。是的,我知道了。我真的没有在网上找到足够的敲除数组函数api文档,因此很难进行跟踪。谢谢,是的。Knockmeout有一些文档:
<div class='liveExample'>
<ul data-bind="foreach:differ">
<!-- ko if: status == 'added' -->
<li data-bind="text:'\'' + value + '\''"></li>
<!-- /ko -->
</ul>
</div>