0
我上的在線/離線應用程序的工作,我已經注意到了這一點:骨幹collection.get()不恢復模型的方法
我在我的收藏取回我的下線從localStorage的檢索。 (每次用戶在線登錄,我都會通過從服務器上檢索到的附加數據保存他)
如果同一用戶現在嘗試離線登錄,我檢查該運算符是否與我的集合中的任何運算符相匹配,如果匹配條目,我返回運營商比賽。
問題是,我從collection.get(#id)獲得的運算符沒有來自骨幹運算符模型的任何方法。
前糾正我的代碼一直在尋找這樣的:
if(this.isLocalValidOperator(operator)){
var operatorMatch = this.get(operator.get('id'));
cb(operatorMatch);
}
我校,現在它的工作
if(this.isLocalValidOperator(operator)){
var operatorMatch = this.get(operator.get('id'));
// must add additional attributes from the match, then return the operator created with new Operator(someAttributes)
operator.set({
isSuperadmin: operatorMatch.get('isSuperadmin'),
isModerator: operatorMatch.get('isModerator'),
firstname: operatorMatch.get('firstname'),
lastname: operatorMatch.get('lastname')
});
cb(operator);
}
我在做什麼錯?
運算符和operatorMatch是不同的對象嗎?你爲什麼期望他們具有相同的屬性? –
他們是同一個對象。因爲operatorMatch是operatorCollection的一個條目,它是一個運算符集合^^, – BigDong
不,'b = collection.get(a.get('id'))'只意味着'b.id === a.id'。 jsfiddle.net或jsbin.com上的函數演示可能有助於澄清事情。 –