AngularJS将一个对象映射到另一个对象
问题描述:
如果原始字段为空,我想将$scope.filters
对象映射到条件为var criteria
。AngularJS将一个对象映射到另一个对象
所以可以说我有:
$scope.filters = {
name: 'myName'
lastName: null,
age: null,
}
我想我var criteria
映射到非空字段是这样的:
var criteria = {
name: 'myName';
}
所以我已经试过这样:
var criteria = {};
angular.forEach($scope.filters, function (value, key, obj) {
if (value != null) {
this.push(obj)
}
}, criteria);
但我想我错过了一些东西。
答
criteria
是一个对象,而不是一个数组,所以你不能推它。要么让一个数组,如果你想存储分开的单独的标准,或与this[key] = value;
答
你应该做这样的替换推,
$scope.filters = {
name: 'myName'
lastName: null,
age: null,
}
var criteria = []; //array, you were using object
angular.forEach($scope.filters, function(value, key) {
if (value != null) {
this.push(key + ': ' + value);
}
}, criteria);
expect(criteria).toEqual(['name: myName']);
希望它能帮助。
你在推什么?你的'$ scope.filters'是一个对象,而不是一个数组。 – Oleg 2014-10-02 10:59:56