javascript - Angular mongodb数组格式写错了

标签 javascript angularjs

我想将以下内容写入具有“items”字段的数据库:

$scope.variable = [[1,2],[3,4]];

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

当我将其写为 angular.toJson($scope.variable) 时,它确实会被分开,但是我如何将其 ng-repeat 为 1,2 和 3,4 而不是 [[1 ,2],[3,4]]

这不起作用:

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

最佳答案

要在 html 上填充二维数组,您需要执行 ng-repeat 两次

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\"]]"这样的 json ,“__v”:0}

您需要其中的项目数组,并且该项目包含在维度数组中,基本上您需要展平该数组。使用 Angular 自定义过滤器可以轻松实现

过滤

.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

关于javascript - Angular mongodb数组格式写错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194514/

相关文章:

JavaScript 超时

javascript - RxJS 可观察到的.concat : How to know where next result came from?

javascript - 如何使用 Angular promise 作为字符串的一部分

javascript - ng-class 不会打开/关闭类(class)

javascript - reactjs - 获取作为谷歌仅显示空白页面

javascript - 将数据从一个组件发送到另一个 Vuejs

javascript - 为什么除非写在元素本身上,否则脚本不起作用?

javascript - 如何在悬停时停止当前位置的CSS动画?

javascript - 在 Angular 中更新服务变量时, watch 不会触发

javascript - 如何在 Angular 组件中动态调整 PixiJS (HTML) Canvas 的大小