我有一个从父服务继承的子服务(我正在使用ES6)。构造函数采用名为options
的1个参数。 options
将this._defaults
分配给options
。
在我将new Service(options)
传递到我的对象(options
)之前,我用options
填充了一些数据。为了简单起见,我当前的const options = {
types: []
}
对象如下所示:
const Types = {
standard: {
some: 'data'
},
freeroll: {
some: 'data'
},
mainevent: {
some: 'data'
},
qualifier: {
some: 'data'
}
};
angular.forEach(Types, (val, key) => {
options.types[key] = true;
});
现在我在types数组中添加一些东西,比如:
$scope.service = new Service(options)
我将我的服务分配给范围如下:
_defaults.types
并使用控制台输出服务。控制台现在说Array(0)
的值为Array(0)
。当我单击数组时,将显示正确的值,但范围不知道。
mysqldump -h localhost --user=username -p --tab=/var/tmp database_name
是不是意味着在console.log()时,数组没有填充任何值,但是后来呢?就像异步函数一样吗?
答案 0 :(得分:2)
问题是types
是一个数组,你将它视为普通的对象。你可以用两种方法解决这个问题。
首先只需将types
更改为对象:
const options = {
types: {}
};
或者,如果您需要数组,请更改您向数组添加项目的方式:
angular.forEach(Types, (val, key) => {
options.types.push({
type: key,
value: val
});
});
请注意,这只是将对象转换为数组的一种方式,您最终得到的数据结构取决于您。