2014-10-02 5 views
0

원래 필드가 null인지 아닌지를 조건으로 $scope.filters 객체를 var criteria에 매핑하고 싶습니다.AngularJS 하나의 객체를 다른 객체로 매핑

var criteria = { 
    name: 'myName'; 
} 

그래서 나는이 같은 시도 :

$scope.filters = { 
    name: 'myName' 
    lastName: null, 
    age: null, 
} 

내가 내 var criteria을 다음과 같이 null 이외의 필드에 매핑 할 할 :

그래서 내가 가지고 말할 수

var criteria = {}; 

angular.forEach($scope.filters, function (value, key, obj) { 
     if (value != null) { 
      this.push(obj) 
     } 
}, criteria); 

하지만 뭔가 빠져있는 것 같습니다.

+0

당신은 무엇을 밀어 넣고 있습니까? '$ scope.filters'는 배열이 아닌 Object입니다. – Oleg

답변

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

는 도움이되기를 바랍니다.

관련 문제