问题在于来自后端/数据库的JSON数组响应。我正在以正确的json格式获取数据库的响应:
[
0: {
"Grade": 100,
"AB001": 1,
"AB002": 0,
"AB003": 9,
"AB004": 5
},
1: {
"Grade": 98,
"AB001": 3,
"AB002": 0,
"AB003": 0,
"AB004": 0
}
...
] (10 objects as result)
当您单击GET请求的响应时,在Firebug控制台中显示。要检索用双引号表示的键,我在视图中使用了ngRepeat指令,如下所示:
<thead>
<tr ng-repeat="d in data">
<th ng-repeat="(key, value) in d">
{{key}}
</th>
</tr>
</thead>
...
唯一的问题是,密钥重复10次。但是我想重复一次密钥,这意味着例如密钥Grade
在th-tag中只有一次,依此类推......
我该如何实现?我用angular forEach()
尝试了它,但它不是解决方案。
答案 0 :(得分:4)
如果阵列中的每个对象都有完全相同的键,则可以通过以下方式实现:
<thead>
<tr>
<th ng-repeat="(key, value) in data[0]">
{{key}}
</th>
</tr>
</thead>
在你的代码片段中,您正在为数组中的每个元素执行双循环,列出每个键。
答案 1 :(得分:1)
您可以使用AngularUI中的唯一过滤器(此处提供源代码:AngularUI unique filter)并直接在ng-options(或ng-repeat)中使用。
试试这个:
<thead>
<tr ng-repeat="d in data">
<th ng-repeat="(key, value) in d | unique:'key'">
{{key}}
</th>
</tr>
</thead>
答案 2 :(得分:0)
这个答案可能对你有帮助
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/>
</Trigger>
<DataTrigger Binding="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource AncestorType={x:Type Grid}}"
Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard1}" />
<BeginStoryboard Storyboard="{StaticResource StoryboardTextAnimation}" />
</Trigger.EnterActions>
</DataTrigger>