假设我有以下 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'))
它将输出之前添加的两个对象。我希望每个实例在创建时都有其默认值,而不是不再引用它的东西。有任何想法吗?咖啡脚本有什么问题吗?
PS我希望问题陈述足够清楚:)