次の Backbone.js モデルがあるとします。
class App.Models.Article extends Backbone.Model
defaluts:
id: ''
name: ''
tags: []
およびその内容を表示するビュー。マスター ビューで、新しく作成した記事を次のように渡すことで、記事ビューのインスタンスを作成します。
v = new App.Views.ArticleView({ model: new App.Models.Article() })
ページにレンダリングします。
記事ビューおよびユーザーの操作により、次のコードによっていくつかのタグがタグ配列に追加されます。
addTag: ->
tags = @model.get('tags')
tags.push({id: '', name: 'foo'})
tags.push({id: '', name: 'bar'})
ここまでは順調ですね!次に、記事のビューを閉じて、別のビューをレンダリングします。後で記事ビューを再度レンダリングしたいので、コードは次のとおりです。
v = new App.Views.ArticleView({ model: new App.Models.Article() })
再び実行されます。
問題はレンダリング後です。タグ配列に以前に入力されたタグがまだ表示されます。つまり、記事ビュー内にある場合は、次のように記述します。
console.log(@model.get('tags'))
以前に追加された 2 つのオブジェクトが出力されます。各インスタンスには、参照がなくなったものではなく、作成時にデフォルト値があると思います。何か案は?Coffescript に問題はありますか?
PS問題の説明が十分に明確であることを願っています:)