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

标签 backbone.js instanceof

我对jquery和backbone比​​较陌生,希望有人能帮助我解决这个错误。我有一个 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

提前致谢

最佳答案

就我而言,我可以通过更改 main.js 来修复它。错误在于,在某些情况下,主干是在 jquery 加载之前加载的。我的 main.js 是这样的

shim : { 'underscore' : { exports: '_' }, 'backbone' : { deps : ['underscore'], exports: 'Backbone' }

我必须在 jquery 的主干中添加一个 deps,就像这样

shim : { 'underscore' : { exports: '_' }, 'backbone' : { deps : ['jquery','underscore'], exports: 'Backbone' }

关于backbone.js: 'instanceof' 的右侧不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50640356/

相关文章:

javascript - 防止用户导航回 Backbone 的特定路线

jquery - Backbone 在应用程序中插入应用程序

javascript - 模板上的 Backbone.js 事件

javascript 根本不执行

javascript - Operator Instanceof 在 Console.log 串联中给出不同的结果

java - 在泛型方法中使用 instanceof

java - 如何替换 "instanceof"函数中的变量

javascript - Backbone + RequireJS + Mediator Pattern 导致 View Logic 短路死循环

java - 避免instanceof - 不可修改的类

javascript - 如何确定使用哪个实例创建了 HTML 元素?