7

范围内定义的 JSON 数组:

$scope.faq = [
        {"Question 1": "Answer1"},
        {"Question 2": "Answer2"}
    ];

HTML:

<div ng-repeat="f in faq">
    {{f}}
</div>

输出:

{"Question 1": "Answer1"}
{"Question 2": "Answer2"}

我希望输出看起来像什么:

Question 1 - Answer1
Question 2 - Answer2

它看起来应该如何工作:

<div ng-repeat="f in faq">
    {{f.key}}-{{f.value}}
</div>

...但事实并非如此。

4

5 回答 5

12

在范围内更改您的 json 数组,例如;

$scope.faq = [
        {key: "Question 1",
         value: "Answer1"},

        {key: "Question 2",
         value: "Answer2"}
    ];

在你看来;

<div ng-repeat="f in faq">
    {{f.key}}-{{f.value}}
</div>
于 2013-08-26T03:32:35.630 回答
8

由于它位于数组中,因此您必须遍历每个对象的键值。

http://fiddle.jshell.net/TheSharpieOne/QuCCk/

<div ng-repeat="value in faq">
    <div ng-repeat="(question,answer) in value">
        {{question}} - {{answer}}
    </div>
</div>

或者:
如果您只有一个简单的对象:

$scope.faq = {
     "Question 1": "Answer1",
     "Question 2": "Answer2"
};

你可以避免第二次重复

<div data-ng-repeat="(question,answer) in faq">
        {{question}} - {{answer}}
</div>

http://fiddle.jshell.net/TheSharpieOne/D3sED/

于 2013-08-26T03:33:42.557 回答
0
$scope.faq = [
    "Answer1",
    "Answer2"
];


<div ng-repeat="answer in faq">
    Question {{$index+1}}-{{answer}}
</div>
于 2013-08-26T03:32:48.517 回答
0

如果您使用的是兼容 ECMA5 的浏览器,您可以尝试,

<div ng-repeat="f in faq">
    {{Object.keys(f)[0]}}-{{f[Object.keys(f)[0]]}}
</div>

当然,这只有在您的对象只有 1 个键时才能可靠地工作。如果它有多个键,最好的办法是编写一个过滤器函数来获取键名,然后您可以使用它来提取相关键。

于 2013-08-26T03:33:48.290 回答
0

检查我的代码:http ://plnkr.co/edit/NGECK7iieFRtvt7WP48A?p=preview

ng-repeat 需要一个数组,对于数组中的每个对象,您需要与值绑定的键。

于 2013-08-26T03:34:30.380 回答