同一个对象有很多问题。但我的情况略有不同。不同的是,在我的问题中,我不使用任何仅骨干模型的主干视图。
我只使用Backbone View。以下是初始化视图时的错误堆栈。
Uncaught TypeError: Cannot use 'in' operator to search for 'model' in ace-edit-spec-examples-1-8
(anonymous function) underscore.js:783
_.each._.forEach underscore.js:78
_.pick underscore.js:782
_.extend._configure backbone.js:1086
Backbone.View backbone.js:983
child backbone.js:1529
Backbone.View.extend.render itemview.js:90
Backbone.View.extend.addListItem listview.js:99
Backbone.View.extend.renderList listview.js:84
(anonymous function) listview.js:42
_.each._.forEach underscore.js:78
Backbone.View.extend.render listview.js:41
Backbone.View.extend.render tabview.js:124
(anonymous function) tabview.js:50
collection.fetch.success util.js:28
options.success backbone.js:854
fire jquery.js:1037
self.fireWith jquery.js:1148
done jquery.js:8074
callback
任何帮助?
编辑:
我的观点
var AceEditorView = Backbone.View.extend({
initialize: function (id,type,here) {
this.id = id;
this.type = type;
this.here = here;
//this.render();
}});
我的电话:
new AceEditorView('ace-edit-spec-examples-1-'+json.id,'json',this);
答案 0 :(得分:6)
Backbone.View.constructor
/ Backbone.View.initialize
的签名为new View([options])
,因此您必须将参数作为选项的哈希值传递。尝试
var AceEditorView = Backbone.View.extend({
initialize: function (opts) {
this.id = opts.id;
this.type = opts.type;
this.here = opts.here;
}
});
并将其实例化为
new AceEditorView({
id: 'ace-edit-spec-examples-1-'+json.id,
type: 'json',
here: this
});