【问题标题】:ng-repeat for object inside array of arrays对数组数组中的对象进行 ng-repeat
【发布时间】:2014-04-21 11:28:47
【问题描述】:

我从后端接收到一个字符串数组。 (Java - CXF-RS)

字符串数组中数组的大小从 1 到 n 不等。为了在前端读取和填充它,我使用了 ng-repeat。

除了一种情况外,一切正常。如果任何字符串数组中只有一个数据,则将其作为对象接收。因此 ng-repeat 在这些条件下失败了。

有没有办法解决这个问题?

【问题讨论】:

  • 改变你的后端,让它只返回一个数组。
  • 如果你不能改变你的后端,那么在响应后将其转换为数组。
  • 是的,我已经这样做了,但我想知道这是正确的方法还是有更好的方法。
  • 如果您可以发布一些代码或 jsbin 演示,我们可以发布建议。

标签: javascript arrays angularjs object


【解决方案1】:

最好的选择是强制服务器每次都返回一个数组。如果这不可能,您可以使用以下命令检查返回的数据是否为数组: angular.isArray()

https://docs.angularjs.org/api/ng/function/angular.isArray

如果不是,则将数据推送到 ngRepeat 正在使用的数组中。

伪代码: 1.从服务器获取数据 2.在成功回调中初始化您的数组 3.如果返回的数据是数组,则将其分配给您的数组 4. 如果没有,则将数据推送到您的数组中。

$http.get('url', function(data) {
  $scope.items = [];
  if(angular.isArray(data) {
     $scope.items = data; 
  } else {
    $scope.items.push(data);
  }
});

我没有检查这段代码是否有语法错误,也没有检查过它。这只是为了给你一个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多