角1.4 (还不稳定)有一个我感兴趣的函数:.merge()。
因为我不想使用不稳定的库,所以我正在寻找一个替代角1.3.x的方法。我的项目中有什么"backports“库可以模仿.merge()吗?
发布于 2015-05-26 11:23:03
只要看一下实际的代码,它已经有了很好的文档,您应该能够自己模仿它,https://code.angularjs.org/1.4.0-rc.2/angular.js:
第459项
合并功能:
function merge(dst) {
return baseExtend(dst, slice.call(arguments, 1), true);
}它使用baseExtend函数
function baseExtend(dst, objs, deep) {
var h = dst.$$hashKey;
for (var i = 0, ii = objs.length; i < ii; ++i) {
var obj = objs[i];
if (!isObject(obj) && !isFunction(obj)) continue;
var keys = Object.keys(obj);
for (var j = 0, jj = keys.length; j < jj; j++) {
var key = keys[j];
var src = obj[key];
if (deep && isObject(src)) {
if (!isObject(dst[key])) dst[key] = isArray(src) ? [] : {};
baseExtend(dst[key], [src], true);
} else {
dst[key] = src;
}
}
}
setHashKey(dst, h);
return dst;
}它用
function setHashKey(obj, h) {
if (h) {
obj.$$hashKey = h;
} else {
delete obj.$$hashKey;
}
}用角型替换baseExtend中缺少的函数(即angular.isObject用于isObject等)
https://stackoverflow.com/questions/30456947
复制相似问题