1
即時編寫第一個開源Backbone.js應用程序。 存儲庫在這裏https://github.com/defrag/Backbone-InvoicesBackbone.js保存模型的屬性,其他模型的數組
我有保存發票的LineItems數組的問題。那麼,僅在編輯後保存,因爲它將訂單項從當前編輯的發票保存到localstorage中的所有發票。不知道爲什麼會發生這種情況,他們總是有相同的Cids。 創建發票時的默認訂單項始終爲cid0。任何幫助?
class window.Invoice extends Backbone.Model
initialize: ->
defaults:
date: new Date
number: '000001'
seller_info: null
buyer_info: null
line_items: [new LineItem]
的最後一件事,我不明白的是爲什麼骨幹心不是保存嵌套的屬性。正如你將在回購中看到我做的:
handleSubmit: (e) ->
data = {
date : @$("input[name='date']").val(),
number : @$("input[name='number']").val(),
buyer_info : @$("textarea[name='buyer_info']").val(),
seller_info : @$("textarea[name='seller_info']").val(),
line_items: @model.line_items.toJSON()
}
if @model.isNew()
invoices.create(data)
else
@model.save(data)
e.preventDefault()
e.stopPropagation()
$(@el).fadeOut 'fast', ->
window.location.hash = "#"
事情是在編輯表單和更改行項目的值後,它們不會在集合中更改。添加新的發票訂單項集合作品。任何幫助? :)我有一些很難與理解everyhing是如何工作的:)
您可以點擊此處查看:http://backbone-invoices.brillante.pl/
很好的答案。或者,把'@line_items = [new LineItem]'放在'initialize'方法中。 –
我也會考慮你的'LineItem'數組是'BackBone.Collection'。它會消除很多你的創建代碼(你可以使用「add」代替),並且會清理你的其他代碼。 –
謝謝你們,我設法解決這個問題。事實證明,保存模型的嵌套屬性是一個小問題。我最終使用Collection來處理訂單項,並在發送到localStorage之前將所有內容解析爲JSON – Michal