第二次通过函数删除嵌套对象

时间:2016-09-20 22:33:20

标签: javascript backbone.js underscore.js

每次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);

    },

0 个答案:

没有答案