backbone.js: правая часть instanceof не является объектом - PullRequest
0 голосов
/ 01 июня 2018

Я новичок в jquery и backbone, надеюсь, кто-нибудь сможет мне помочь с этой ошибкой.У меня есть веб-приложение, которое иногда выдает эту ошибку в консоли

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

Заранее спасибо

1 Ответ

0 голосов
/ 14 июня 2018

В моем случае я мог бы исправить это, изменив свой main.js.Ошибка заключалась в том, что в некоторых случаях магистраль загружалась до загрузки jquery.Мой main.js был такой

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

Мне пришлось добавить deps в магистрали для jquery, например:

shim: {'underscore': {exports: '_'}, 'backbone':{deps: ['jquery', 'underscore'], экспорт: 'Backbone'}

...