基本的に、私はバックボーンが初めてです。私の見解では、コレクション内の「制限」という属性を変更しています。次に、イベントをトリガーして (属性が変更されたときに)、イベントをリッスンして他のアクションを実行できるようにします。
ただし、何かが変更されたときにコレクションからイベントをトリガーし、その変更が発生したときにその変更をリッスンすることはできません。ビューとコレクションが互いに通信することと関係があると思います..どんな助けでも大歓迎です! ありがとう
イベントをトリガーするコード (私のコレクション内) は次のとおりです。
@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)