繁体   English   中英

AngularJS将一个对象映射到另一个

[英]AngularJS Map one object to another

我想根据原始字段是否为null的条件将$scope.filters对象映射到var criteria

所以可以说我有:

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

我希望将var criteria映射到这样的非null字段:

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

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM