2012-07-18 82 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