我有一个递归函数,当在角度之外时,它可以很好地工作。它都是原生JS,但在angular2/4中使用时似乎会出错。
功能:
convertToArray(object, keys) {
Object.keys(object).forEach(function (k) {
if (object[k] && typeof object[k] === 'object') {
this.convertToArray(object[k], keys);
}
if (keys.indexOf(k) !== -1 && !Array.isArray(object[k])) {
object[k] = [object[k]];
}
});
}
我通过以下方式调用该方法:
console.log(this._utils.convertToArray(this.mapRulesData, ['rule']))
TypeError: Cannot read property 'convertToArray' of undefined
当我做一些
console.log
在函数中,它似乎在抛出错误之前到达这一行:
this.convertToArray(object[k], keys);
当试图以这种方式调用方法本身时,angular有什么特殊之处吗?