AngularJS将JSON值赋予ng-repeat

时间:2015-04-08 07:38:53

标签: javascript json angularjs

我得到了关注json并希望重复并绑定value,但它似乎有些不对。

JSON

{
    "1428394433116":[
        {
            "path":"path0","value":"test path 2"
        },
        {
            "path":"path1","value":"test path 1"
        }
    ],
    "1428467596813":[
        {
            "path":"path0","value":"path info 1"
        },
        {
            "path":"path1","value":"path info 2"
        },
        {
            "path":"path2","value":"path info 3"
        }
    ] }

ng-repeater

<p ng-repeat="p in ps">
    <label>Path <span ng-bind="$index"></span> :</label>
         <span class="normal-f">
              <span ng-bind="p.value"></span>
              <input type="text" ng-model="a.path[$index]">
         </span>
</p>

更新

谢谢,一个模块的ID-1428394433116和另一个模块的ID-1428467596813。

所以预期的结果是:

path 1: test path 2
path 2: test path 1

2 个答案:

答案 0 :(得分:1)

您尝试在此行<span ng-bind="p.value"></span>

上将数组绑定为字符串

p.value不存在,因为p是一个数组。 第一个p看起来像这样:

[
    {
        "path":"path0","value":"test path 2"
    },
    {
        "path":"path1","value":"test path 1"
    }
]

您必须为ngRepeat使用其他p,否则您必须每次都使用第一个元素<span ng-bind="p[0].value"></span>

这意味着最好的方法应该是这样的:

<p ng-repeat="(ID, p) in ps"><!-- here you get the index (ID) and the Array (p) -->
    <label>Path <span ng-bind="ID"></span> :</label>
    <span ng-repeat="element in p track by $index" class="normal-f"><!-- here comes the other repeat -->
        <span ng-bind="element.value"></span>
        <input type="text" ng-model="a.path[$index]">
    </span>
</p>

答案 1 :(得分:0)

此处JSON数据包含另一个JSON数据。

所以'1428394433116'包含一组数据或JSON,'1428467596813'包含另一组JSON。所以你需要分别使用ps.1428394433116和ps.1428467596813来获取价值。