这是我的观点:骨干查看属性返回undefined
define(
[
"jquery"
, "underscore"
, "backbone"
, "eventView"
]
, function($, _, Backbone, EventView) {
"use strict";
var TimelineView = Backbone.View.extend({
tagName: 'div'
, className: 'column'
, _EventViews: {} // Cache event views for reuse
, initialize: function() {
this.collection.bind('add', this.add);
this.collection.bind('reset', this.add);
}
, render: function() {
return this;
}
// Listen for additions to collection and draw views
, add: function(model) {
var eventView = new EventView({
model: model
});
// Cache the event
console.log(this._EventViews);
this._EventViews[model.get('id')] = eventView;
// Draw event
eventView.render();
}
});
return TimelineView
}
);
正如你可以看到我设置_EventViews
属性包含一个空的对象。但是,当我呼叫add()
函数console.log(this._EventViews)
返回未定义,并且以下语句失败。
谁能告诉我这是为什么?
只是缺乏对问题的解释伊莫,但两点都适用。 – Loamhoof
谢谢,仍然试图进入Backbone的思维模式,并且每个教程似乎都使用了不同的结构,但我将使用'listenTo'并感谢关于'_EventViews'的静态头像。 –