美文网首页
实现路由跳转

实现路由跳转

作者: 路耀广的前端微博 | 来源:发表于2018-06-08 17:42 被阅读0次
_getRouteConf: function(route) {
            var obj = {},
                getList = function(curconf){
                    return curconf.list || curconf.cp_list || curconf.app_list || curconf.classification_list;
                },
            fn = function(name, conf) {
                var list = getList(conf), p, o;
                if (!list) {
                    // list不存在, 结束
                    obj[name] = {
                        name : name,
                        value : conf
                    };
                } else {
                    // 递归list
                    for (p in list) {
                        fn(name + '.' + p, list[p]);
                    }
                    // 如果default_index存在,说明当前path要指向default_index
                    if (conf.default_index) {
                        obj[name] = obj[name + '.' + conf.default_index];
                    } else {
                        // 不存在default_index,说明是个独立的module, 复制除了list的值
                        o = {};
                        for (p in conf) {
                            if (conf[p] !== list) {
                                o[p] = conf[p];
                            }
                        }
                        obj[name] = {
                            name : name,
                            value : o
                        };
                    }
                }
            };
            // conf首次肯定有list, 放在外面, 是为了不用拼接name.
            var list = getList(route), p;
            for (p in list) {
                fn(p, list[p]);
            }
            obj["_default"] = obj[route.default_index];
            return obj;
        },

相关文章

网友评论

      本文标题:实现路由跳转

      本文链接:https://www.haomeiwen.com/subject/lcgasftx.html