2014-10-02 219 views
0

如果原始字段为空,我想将$scope.filters对象映射到条件为var criteriaAngularJS将一个对象映射到另一个对象

所以可以说我有:

$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

你在推什么?你的'$ scope.filters'是一个对象,而不是一个数组。 – Oleg 2014-10-02 10:59:56

回答

1

criteria是一个对象,而不是一个数组,所以你不能推它。要么让一个数组,如果你想存储分开的单独的标准,或与this[key] = value;

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']); 

希望它能帮助。

相关问题