每次Backbone集合更新时,我都会调用一个函数。它需要一些JSON并映射它,以便有更多的数据,基本上是一个解析函数。在页面加载一切正常。记录时hU.data
不仅存在,而且当您查看_this.treeData
中的每个对象时,记录时一切都存在。
当我再次获取(在用户操作上)时会发生问题。集合会更新,当modifyData
被调用时,hU.data
在记录时就会存在。但是,_this.treeData
中每个对象的数据属性不再存在。基础对象位于_this.treeData
(text,name,id,parent,active),但.data
不再存在(parent,id,name,role,addHTML)。这是消失的嵌套对象的情况。我正在努力解决这个问题。任何帮助是极大的赞赏。
_this.treeData
是存储在Backbone视图中的变量。也许问题在于此?我缺少记忆问题吗?
这是:
modifyData: function () {
var _this = this;
var userData = this.collection.toJSON()
_this.treeData = [];
_this.treeData = _.map(_.reject(userData, function (u) {
return u.parent_id === null;
}), function (u) {
var hU = {};
hU.text = u.name;
hU.id = u.id;
hU.parent = u.parent_id === 'root' ? '#' : u.parent_id;
hU.active = u.active;
if (u.parent_id === 'root') {
var parent = {
name: 'Root'
}
} else {
var parent = _.findWhere(userData, {id: u.parent_id});
}
hU.data = {
parent: parent,
id: u.id,
name: u.name,
role: u.user_role_name,
addHTML: _this.hierarchyIndivTemplate //This is a function
};
console.log(hU.data);
return hU;
});
console.log(_this.treeData);
},