这可能有点令人困惑。
基本上,我正在解析显示在不同视图中的多个外部JSON源,具体取决于显示的“活动选项卡”。它们都共享相同的部分模板,因此它们看起来完全相同,只是内容不同。
我现在面临的问题是,在某些Feed中,某些键位于数组中,而其他键则不存在。
例如,Feed会解析此类数据:
JSON Feed 1 - 'link'中的一个'属性'
"link":{
"attributes":{
"href":"www.link1.com"
}
}
JSON Feed 2 - “link”中的两个“属性”
"link":[
{
"attributes":{
"href":"www.link1.com"
}
},
{
"attributes":{
"href":"www.link2.com"
}
}
]
我能够获得价值“www.link1.com”的唯一方法是通过:
对于Feed 1:
<a href="{{item['link']['attributes']['href']}}">link1</a>
对于Feed 2:
<a href="{{item['link'][0]['attributes']['href']}}">link1</a>
我想弄清楚什么是最好的方法:
1)如果link[0]
存在 - 显示它,否则如果存在[link]
,则显示它。
2)或者,如果定位activeTab会更安全吗?例如,如果activeTab = view2 or view4, use [link][0]
,else if activeTab = view1 or view3 use [link]
,否则如果我不希望它显示,则不显示任何内容。
另外一个相关问题,如果我在view2上,我只能在该视图上显示[link][0]
吗?
任何反馈都将不胜感激。谢谢!
答案 0 :(得分:0)
在模型控制器中,您可以重建JSON对象以使它们相似。两个Feed中link
的值应为数组。
然后在您的模板中,您只需使用ngRepeat
从数组中获取项目。
答案 1 :(得分:0)
好的 - 所以我找到了上述问题之一的解决方案:“如何仅在特定视图中显示[link] [0]”
Pro:这是一个简单的代码,取决于正在显示的activeTab / view。
Con(?):因为我真的是AngularJS的新手 - 不确定这是否是最好的解决方案。
基本上: 根据当前显示的ng-view,将显示特定的JSON对象,例如:
<a ng-show="activeTab == 'view1' || activeTab == 'view3'" ng-href="{{item['link'][0]['attributes']['href']}}">
<h6>Link1 from Feed2</h6>
</a>
虽然主要问题仍未解决:如果存在JSON对象(键,值),而不是另一个,则如何交换/切换JSON对象。我仍然一定想找到一个解决方案,尽管仍然有任何帮助。
请让我知道您的想法,或者我如何改进问题的解决方案!
谢谢! ROC。