1

同一个对象有很多问题。但我的有点不同。不同之处在于,在我的问题中,我没有使用任何仅骨干模型的骨干视图。

我只使用主干视图。以下是我初始化视图时的错误堆栈。

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);
4

1 回答 1

7

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
});
于 2013-08-27T13:55:14.670 回答