Атрибуты пользователя не очищаются? - PullRequest
0 голосов
/ 01 октября 2011

У меня возникли проблемы с пользовательской моделью, поэтому я добавил к ней:

logout: () ->
    console.log @toJSON()
    @clear()
    console.log @toJSON()
    if @id?
        alert @id

1-й: console.log @toJSON ()

Object
id: "4e862dc6e69aad002"
#other attributes
__proto__: Object

2-й: console.log @toJSON ()

Object
__proto__: Object

Но он все равно предупреждает идентификатор. Почему это может быть?

1 Ответ

1 голос
/ 01 октября 2011

так что у меня нет опыта работы с базовыми моделями, но вот что случается

http://jsfiddle.net/

var Model = Backbone.Model.extend({
});

var x = new Model();

x.set({ "id": "hello world" });


alert(x.get("id"));
alert(x.id);
x.clear();
alert(x.id);
alert(x.get("id"));

Только последний возвращается неопределенным так что я полагаю, что .get - это ведьма API, которую он намерен использовать.

Я прочитал исходный код магистрали, и он говорит, что идентификатор является особенным, и это единственное «поле» что он фактически помещает непосредственно в объект .. и метод clear не удаляет старое значение из этого.

Это похоже на недостаток дизайна ... но идентификатор не должен меняться каким-либо образом, правильно ????

Надеюсь, это поможет Boom

...