我一直在使用Marionette复合视图进行渲染,以显示包含数据表的页面以及一系列允许用户对信息进行操作的按钮。
一个例子就是重新加载'按钮和'确认所有'按钮。
我遇到了一个反复点击“重新加载”的错误。导致集合中出现重复的项目。我试图将其重新用于基础知识,并了解在复合视图中在模型和集合之间传递模型更改的推荐方法。
有人可以帮忙吗?
答案 0 :(得分:0)
如果您使用木偶CollectionView
或CompositeView
,他们会重新渲染以反映您的收藏中的内容,因此您的收藏必须包含重复的模型。
您在refresh
方法中打电话给您的是什么?听起来这就是问题所在。如果要刷新集合以反映服务器上的内容,则应调用集合上的fetch()
方法。默认行为是合并当前集合和从服务器接收的数据。
如果这仍然导致重复,那么从服务器返回的数据可能是错误的 - 例如,如果不包括ID。
如果要将当前集合替换为从服务器返回的数据,可以将{reset: true}
传递给fetch
调用,但不建议这样做,因为您将完全重新渲染每次刷新时表格中的每一行。