我使用backbone-relational的includeInJSON:'id'只包含相关的模型ID,以避免在整个对象树中向我的服务器端发送垃圾邮件。不幸的是,Backbone.Marionette.View默认只公开toJSON返回的视图模式的属性,这意味着视图模板中不再可以访问相关模型。
我意识到我需要一个自定义的Marionette.View serializeData。由于几乎所有模型都需要这样,我希望能够解决这个问题;即覆盖所有视图的serializeData,以便它使用骨干关系id引用做正确的事情。
有人已经做过这个吗?我对此并没有太多的希望,但是还有其他人可以使用它,所以如果没有别的东西,这将成为我编码后转储解决方案的地方。 :)
任何解决方案都需要以下选项之一:
为模型定义两个版本的toJSON,一个使用includeInJSON,另一个总是将其视为true。
只使用模型属性和基于属性的帮助程序,通过Marionette对视图模板的限制来打孔。
答案 0 :(得分:0)
我使用选项#1获得了一个功能性解决方案,但这是一个我不忍心公开发布的黑客攻击。基本上,在serializeData中,我进入模型并在调用toJSON之前和之后修改_relations。没有线程安全和丑陋的哎呀。希望尽快回来并找到合适的解决方案。