如果原始字段为空,我想在条件下将$scope.filters
对象映射到var criteria
。
所以我想说:
$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);
但我想我错过了什么。
答案 0 :(得分:1)
criteria
是一个对象,而不是一个数组,所以你不能推它。如果要存储单独的单个条件,请将其设为数组,或者使用this[key] = value;
答案 1 :(得分:1)
你应该这样做,
$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']);
希望它有所帮助。