繁体   English   中英

用ng-repeat映射嵌套值

[英]Mapping nested values with ng-repeat

我有以下代码,其中我使用ng-repeat循环并映射一些json值, rows是json数据,其中columns与我要显示的键匹配:

function MyCtrl($scope) {
    $scope.rows = [{"name": "tom","date": "now"}, {"name": "jack","date": "now"}]; 
    angular.toJson($scope.rows);

    $scope.columns = [{"title":"Title","field":"name"},{"title":"Date","field":"date"}];


}

HTML:

<div ng-app ng-controller="MyCtrl">
  <div ng-repeat="row in rows">

        <div ng-repeat="column in columns">

            {{row[column.field]}}


        </div>
      </div>
</div>

示例: http//jsfiddle.net/dakra/U3pVM/

我的问题是:如何显示/表示嵌套值。 这是我要实现的目标: http : //jsfiddle.net/GCSHA/10/ ,其中使用user.company获取公司名称。

例如:

function MyCtrl($scope) {
    $scope.rows = [{"name": "tom", "user": {"company": "test"}}]

    $scope.columns = [{"title":"Title","field":"name"},{"title":"Company","field":"user.company"}];


}

因此,在上面的示例中,例外的输出为:

Tom
Test

您可以使用小型实用程序方法完成此操作,以重复读取属性。

像这样的东西:

$scope.readProperty = function(obj, prop) {
            var newObj = obj;
    var props = prop.split('.');
    for(var i = 0; i<props.length; i++) {
            newObj = newObj[props[i]];
    }
    return newObj;

}

这里的工作示例: http : //jsfiddle.net/GCSHA/12/

问题是{{row[column.field]}}转换为{{row[user.company"]}} ,这是不正确的。它应该是{{row[user][company]"]}}

暂无
暂无

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

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