不能在'中使用'运营商搜索' model'

时间:2013-08-27 13:35:30

标签: javascript backbone.js

同一个对象有很多问题。但我的情况略有不同。不同的是,在我的问题中,我不使用任何仅骨干模型的主干视图。

我只使用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);

1 个答案:

答案 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
});