基本上我是 Backbone 的新手。从我的角度来看,我正在更改我的集合中名为“limit”的属性。然后我试图触发一个事件(当一个属性刚刚被更改时),让我能够监听事件并执行其他操作。
但是,当某些东西发生变化时从我的集合中触发一个事件,并在它发生时监听该变化是行不通的。我认为这与视图和集合相互通信有关。任何帮助将不胜感激!谢谢
触发事件的代码(在我的收藏中)是:
@trigger("change") #TRIGGER THE EVENT
更改我的集合中的属性的代码(有效)是:
@Properties.attr("limit", "1000") #Change the limit attr to "1000"
监听变化的代码(不起作用)是:
@Properties.on("change", ->
alert("Attribute has been changed!")
)
完整的代码是:
class PropertyCollection extends Backbone.Collection
model: Property
constructor: ->
super
initialize: ->
@_attr = {}
#Function to change attribute of collection
attr: (prop, value) ->
if value is undefined
@_attr[prop]
else
@_attr[prop] = value
@trigger("change") #TRIGGER THE EVENT
limit: "0" #Attribute - default is set to 0
class HomeView extends Backbone.View
constructor: ->
super
initialize: ->
@Properties = new PropertyCollection
@Properties.attr("limit", "1000") #Change the limit attr to "1000"
#Listen for the change
@Properties.on("change", ->
alert("Attribute has been changed!")
)
template: _.template($('#home').html())
render: ->
$(@.el).html(@template)