2

我使用骨干关系的 includeInJSON: 'id' 来仅包含相关的模型 ID,以避免向我的服务器端发送整个对象树的垃圾邮件。不幸的是,Backbone.Marionette.View 默认只公开由 toJSON 返回的视图模式的属性,这意味着相关模型不再可以在视图模板中访问。

我意识到我需要一个自定义的 Marionette.View serializeData。由于几乎我所有的模型都需要这个,我希望能通用地解决这个问题;即覆盖所有视图的serializeData,以便它使用主干关系id 引用做正确的事情。

有人已经这样做了吗?我对此并不太抱有希望,但我认为还有其他人可以使用它,所以如果没有别的,一旦我编码了它,这将作为一个倾倒我的解决方案的地方。:)

任何解决方案都需要以下选项之一:

  1. 为模型定义两个版本的 toJSON,一个使用 includeInJSON,另一个始终将其视为 true。

  2. 通过 Marionette 对视图模板的限制仅使用模型属性和基于属性的助手来打孔的某种方法。

4

1 回答 1

0

我有一个使用选项 #1 的功能性解决方案,但它是如此的 hack,我不忍心公开发布它。基本上,在 serializeData 中,我进入模型并在调用 toJSON 之前和之后修改 _relations。不是线程安全和丑陋的。希望尽快回来并找到合适的解决方案。

于 2012-06-27T19:42:50.763 回答