2012-07-18 80 views
1

我最近接手了一个大的Backbone.js项目,它使用Backbone.Model绑定插件提供模型和视图之间的数据绑定,并直接引用html元素中的“数据绑定”属性中的模型属性名称。Backbone.js的Backbone.Model绑定插件中是否存在绑定的转换器参数?

对于非表单项目,数据绑定是单向的,从模型到视图,但对于表单项目,用户可以更改表单输入,以便更新已绑定到的模型属性该元素,反之亦然 - 模型也可以更新表单输入的内容。

我需要某种视图帮助程序,它将以与模型中绑定的数据不同的格式显示信息,而不会影响模型本身。

例如,如果模型中的一个属性具有的值是多少679,我可能需要的视图显示为$ 679.00,同时具有模特的版本仍然只是数679

在其他类似的库,有很多简单的方法可以在任何方向执行这些转换(Backbone.Modelbinder中的“转换器参数”,Knockout.js中的“计算观察值”,我认为它们在Silverlight中称为转换器等)。不过似乎没有办法使用Backbone.Model绑定来完成它。有谁知道一种方式?

回答

0

这是在放弃Backbone.ModelBinding之前实现了一半的最终功能。如果可以,我会建议切换到Backbone.ModelBinder。

+0

这正是我怀疑,并且几乎回答我题。尽管如此,感谢您在第一时间做出这件事。这是一款优秀的产品,对后续产品有很大的启发。 – rharrington 2012-07-18 04:26:23

4

建议您使用backbone.modelbinderhttps://github.com/theironcook/Backbone.ModelBinder+骨干嵌套http://afeld.github.com/backbone-nested/)。可轻松实现双向嵌套模型和视图之间的结合。

有一个demo,我做你希望对大家有用: http://files.cnblogs.com/justinw/Nested_Model_bi_Binding.zip

backbone.modelbinder可以轻松解决你的问题,在这里看到: https://github.com/theironcook/Backbone.ModelBinder#formatting-and-converting-values

+0

谢谢。我一直在考虑这个问题,但是有数百个html模板文件,所有这些文件都有大量的数据绑定属性,我不确定我是否准备好将它们全部转换为Modelbinder的不显眼的风格。 我要看看这个转换脚本,不过,明天,看它是否会做的伎俩: https://github.com/theironcook/Backbone.ModelBinder/blob/master/sandbox/ConvertDataBindToModelBinder.html 我只是想找一个快速的方法来对我有的代码进行一些更改,如果这是一个选项。 – rharrington 2012-07-18 04:20:59

+0

不客气。 – 2012-07-18 04:28:29

+0

一种可能性是将ModelBinder沿着ModelBinding ...放在需要修复的一两页上,然后切换。但是为其他页面保留旧的ModelBinding代码,直到它们也需要更改。 – 2012-07-18 12:51:11