通过ng-repeat循环时从dict获取值

时间:2015-04-10 11:00:30

标签: javascript jquery python angularjs

我在对象上使用ng-repeat,我的对象如下:

{
    "name": {
            "field_name":"date",
            "date":"00000"
        },
    "type": "timedate"
},
{
    "name":{
            "field_name": "description",
            "description":"my desc"
        },
    "type": "text"
}

您可以看到field_name值与其值的相同键是什么(下一个键与field_name值相同)。

我可以将字段名称值设为name.field_name,但不知道如何获取字段值,其键与field_name值相同。

我试过这个:

    <span data-ng-repeat="field in  fields" ng-init="val = field.name.field_name">
   {$ field.name.field_name $} : {$ field.name.field_name.val $}

    </span>

对于第一种情况,val将设置为日期,这将打印{$ field.name.field_name $} - > date。所以我想通过这个{$ field.name.field_name.val $}获得价值,但它不起作用,因为field_name没有val键,但我想在从dict获取之前它会将val解析为日期以便它会成为{$ field.name.field_name.val $} -> {$ field.name.field_name.date $}

修改:

我想从name dict获取date,desc等值。但我不知道密钥名称这取决于field_name的值。因此,如果我将field_name值存储在某个变量中,并希望使用它来获取下一个值

1 个答案:

答案 0 :(得分:1)

我可能会得到你想要的东西,但我将使用正确的角度语法作为我的例子

<span data-ng-repeat="field in  fields">
   {{ field.name.field_name }}<!-- this should print "date" at first -->
    : {{ field.name[field.name.field_name] }} <!-- this should print "00000" at first -->
</span>

我做的很简单,如果field.name.field_name返回"date",那么您可以使用date的结果访问field.name field.name[field.name.field_name]属性。

我希望这就是你想要的。