2014-10-02 185 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']); 

希望它能幫助。

相關問題