2011-10-01 88 views
0

我有一些麻煩我的用戶模型,所以我說這是:用戶屬性沒有清除?

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

1:執行console.log @toJSON()

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

第二:的console.log @toJSON()

Object 
__proto__: Object 

但它仍然提醒ID .. w^hy可以嗎?

+0

@clear()在做什麼? – dteoh

+0

我想要se toJSON metod plz – megakorre

+0

http://documentcloud.github.com/backbone/#Model-clear – boom

回答

1

,所以我不有骨幹機型的經驗,但這裏是什麼 發生

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")); 

,只有最後一個是返回undefined ,所以我認爲asume是。獲得API的巫婆它打算你使用。

我讀了主幹的源代碼,它接縫的ID是特殊的,這是唯一的「字段」,它實際上直接放在對象上..和清除方法DOS不會從這裏刪除舊值。

這個接縫就像一個設計缺陷......但一個id不應該改變任何方式嗎?

我希望這可以幫助Boom

+0

啊,我明白了,是的,你是對的。我必須重置屬性外的硬集ID。如果用戶有一個ID我的應用程序認爲他們登錄,所以這就是爲什麼我需要清除它時註銷。謝謝! – boom

+0

正確,常見骨幹錯誤:混淆屬性與屬性。 'clear'重置'@ attributes','toJSON'只是給你一個'@ attributes'的克隆;與'@ id'(與'@ attributes.id'相對)都沒有任何關係。 –