角度mongodb数组格式写错了

时间:2015-03-22 12:44:25

标签: javascript angularjs

我想将以下内容写入包含字段'项目'

的数据库中
$scope.variable = [[1,2],[3,4]];

项目的值= 1,2,3,4而不是[1,2],[3,4]

当我把它写成angular.toJson($scope.variable)时,它确实被分开了,但我怎么把它重复为1,2和3,4而不是[[1,2],[3,4]] < / p>

这不起作用:

<tr ng-repeat="x in dbValues"><td>{{x.items}}</td></tr>

1 个答案:

答案 0 :(得分:2)

要在html上获取填充的二维数组,您需要进行两次重复

<强> HTML

<tr ng-repeat="item in data track by $index">
  <td ng-repeat="subItem in item">{{subItem}}</td>
</tr>

Working Plunkr此处

<强>更新

对于像{ "_id" : ObjectId("550ec51fd8b9bff112000006"), "items" : "[[\"a\"],[\"a\",\"b\"]]", "__v" : 0 }

这样的json

你需要来自它的items数组,并且里面的项包含在dimentional数组中,基本上你需要展平该数组。使用角度自定义滤镜

可以很容易地实现

过滤

.filter('flattenarray', function(){
  return function(valuesString){
    var jsonValues = angular.fromJson(valuesString), returnValue = [];
    angular.forEach(jsonValues, function(value, index){
      angular.forEach(value, function(v, i){
        returnValue.push(v);
      });
    });
    return returnValue;
  }
});

然后在标记上使用此过滤器来展平项目对象

<强>标记

<tr ng-repeat="item in data track by $index">
  <td ng-repeat="subItem in item.items | flattenarray track by $index">{{subItem}}</td>
</tr>

Updated Plunkr