我是Backbone的新手,请帮助我解决这个问题。
我的模型如下所示:
var optionItem = Backbone.Model.extend({});
var itemOne = new optionItem({price: 200});
var itemTwo = new optionItem({price: 300});
var itemThree = new optionItem({price: 400});
我的收藏集如下所示:
var optionClass = Backbone.Collection.extend({});
var firstOptionClass = new optionClass([itemOne, itemTwo, itemThree]);
要求是创建3个单选按钮,并显示所有3个项目的价格。当用户单击任何单选按钮时,所选项目的价格将更改为“包括在价格中”,其他2个项目将显示差价。例如,如果我单击itemOne,则itemTwo的价格将为“ +100”,而不是显示为300。
我知道如何为模型和集合创建视图以显示原始信息,但不知道如何编写click事件函数...当前我在模型视图中具有事件函数,但无法访问其他2个模型的价格属性要执行数学运算,我应该将事件功能移至集合视图吗?
请帮助,提前谢谢!!!!
有两种方法可以解决此问题,但要记住的一件事是,每个模型都维护对其所属集合的引用。因此,在您看来,this.model
有一个this.model.collection
属性,您可以在需要时使用它来访问集合。这就是说,我可能会使用一个集合视图来处理收集相关信息,以防止项目视图从违反显示单一职责原则当选项中选择一个,有选择的模型触发的事件。模型事件冒泡到集合,您可以让集合视图在集合上侦听该事件以更新其他选项的“差异”值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句