не имеет метода "имеет" - PullRequest
       10

не имеет метода "имеет"

2 голосов
/ 12 февраля 2012

Атрибуты модели ...

attributes: Object
    array: Array[1]
    id: "ef93fcc0d431d1000003"
    state: "new"

Я устанавливаю ... Единственное отличие, которое я сделал, - это добавление еще одного значения в массив.

model =
    array: Array[2]
    id: "ef93fcc0d431d1000003"
    state: "new"
    __proto__: Object

Я увеличиваю массив так ...

new_array = model.get('array').slice()
new_array.push new_value
model.set({array: new_array})

полная ошибка ...

Object function (obj) { return new wrapper(obj); } has no method 'has'

Это бит Backbone.js, который его выбрасывает ...

  // Update attributes.
  for (attr in attrs) {
    val = attrs[attr];
    if (!_.isEqual(now[attr], val)) delete escaped[attr];
    options.unset ? delete now[attr] : now[attr] = val;
    delete this._changed[attr];
    if (!_.isEqual(prev[attr], val) || (_.has(now, attr) != _.has(prev, attr))) {
        Uncaught TypeError: Object function (obj) { return new wrapper(obj); } has no method 'has'
      this._changed[attr] = val;
    }
  }

Это обновление отправляется с сервера.

Просто ищу некоторые идеи или указания, чтобы выяснить, что может вызвать эту ошибку.

СПАСИБО!

Ответы [ 2 ]

6 голосов
/ 12 февраля 2012

Похоже, ваш код ссылается на Underscore.js .Возможно, этого не хватает?

0 голосов
/ 30 мая 2012

В моем случае проблема заключалась в попытке использовать последнюю версию Backbone-реляционного в сочетании со старой версией Backbone.js. Обновление Backbone с v0.9.1 до 0.9.2 исправило его.

...