如何使用AngularJS输出JSON数组中的元素

Rob*_*ian 7 html javascript json angularjs output

范围中定义的JSON数组:

$scope.faq = [
        {"Question 1": "Answer1"},
        {"Question 2": "Answer2"}
    ];
Run Code Online (Sandbox Code Playgroud)

HTML:

<div ng-repeat="f in faq">
    {{f}}
</div>
Run Code Online (Sandbox Code Playgroud)

输出:

{"Question 1": "Answer1"}
{"Question 2": "Answer2"}
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像:

Question 1 - Answer1
Question 2 - Answer2
Run Code Online (Sandbox Code Playgroud)

看起来它应该如何工作:

<div ng-repeat="f in faq">
    {{f.key}}-{{f.value}}
</div>
Run Code Online (Sandbox Code Playgroud)

......但事实并非如此.

BKM*_*BKM 12

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

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

        {key: "Question 2",
         value: "Answer2"}
    ];
Run Code Online (Sandbox Code Playgroud)

在你看来;

<div ng-repeat="f in faq">
    {{f.key}}-{{f.value}}
</div>
Run Code Online (Sandbox Code Playgroud)


The*_*One 8

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

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

<div ng-repeat="value in faq">
    <div ng-repeat="(question,answer) in value">
        {{question}} - {{answer}}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

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

$scope.faq = {
     "Question 1": "Answer1",
     "Question 2": "Answer2"
};
Run Code Online (Sandbox Code Playgroud)

你可以避免第二次重复

<div data-ng-repeat="(question,answer) in faq">
        {{question}} - {{answer}}
</div>
Run Code Online (Sandbox Code Playgroud)

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