backbone.js:'instanceof'的右侧不是对象

时间:2018-06-01 09:33:01

标签: backbone.js instanceof

我是jquery和骨干的新手,希望有人可以帮我解决这个错误。我有一个Web应用程序,有时会在控制台中抛出此错误

require.js:900 TypeError: Right-hand side of 'instanceof' is not an object
    at child.setElement (backbone.js?__nc__=1527837925799:1040)
    at child._ensureElement (backbone.js?__nc__=1527837925799:1102)
    at child.Backbone.View (backbone.js?__nc__=1527837925799:990)
    at child [as constructor] (backbone.js?__nc__=1527837925799:1545)
    at new child (backbone.js?__nc__=1527837925799:1545)
    at child.initialize (application.js?__nc__=1527837925799:357)
    at child.Inditex.Application (backbone-inditex-1.2.0.js?__nc__=1527837925799:27)
    at new child (backbone.js?__nc__=1527837925799:1545)
    at createApp (main.js:201)
at Object.execCb (require.js:1690)

如果发生此错误,重新加载网页是固定的(有时会有3到4次),但我不知道为什么会这样。

我找到了引发此错误的行。在backbone.js文件中,方法setElement

setElement: function(element, delegate) {
      debugger;
      if (this.$el) this.undelegateEvents();
      this.$el = element instanceof Backbone.$ ? element : Backbone.$(element);
      this.el = this.$el[0];
      if (delegate !== false) this.delegateEvents();
      return this;
    },

有时,Backbone。$不是一个对象,而且是错误的时候。

¿任何解决此错误的想法?我正在使用backbone.js 1.1.0

提前致谢

2 个答案:

答案 0 :(得分:2)

就我而言,我可以修改它改变我的main.js.错误是,在某些情况下,在加载jquery之前加载了主干。我的main.js就像这样

  

垫片:{           '下划线' :{               出口:' _'           },           '骨干' :{               deps:['下划线'],               出口:' Backbone'           }

我必须在jquery的骨干中添加一个deps,比如这个

  

垫片:{           '下划线' :{               出口:' _'           },           '骨干' :{               deps:[' jquery','下划线'],               出口:' Backbone'           }

答案 1 :(得分:0)

此问题的主要原因是在jQuery之前加载了ribs.js,因此您需要做的就是确保jQuery在ribs.js之前加载。