По сути, я новичок в Backbone. С моей точки зрения, я меняю атрибут в своей коллекции под названием «лимит». Затем я пытаюсь инициировать событие (когда атрибут только что был изменен), что позволяет мне прослушивать событие и выполнять другие действия.
Однако запуск события из моей коллекции, когда что-то изменяется, и прослушивание этого изменения, когда оно происходит, не работает. Я предполагаю, что это как-то связано с общением представления и коллекции друг с другом. Любая помощь будет высоко оценена! Спасибо
Код для запуска события (внутри моей коллекции):
@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)