0

这可能有点难以描述。

基本上,我正在解析多个显示在不同视图中的外部 JSON 提要,具体取决于显示的“活动选项卡”。它们都共享相同的部分模板,因此它们看起来完全相同,只是内容不同。

我现在面临的问题是,在某些提要中,某些键放置在数组中,而另一些则没有。

例如,提要解析此类数据:

JSON Feed 1 - “链接”内的一个“属性”

"link":{
  "attributes":{
    "href":"www.link1.com"
  }
}

JSON Feed 2 - “链接”内的两个“属性”

"link":[
  {
    "attributes":{
      "href":"www.link1.com"
    }
  },
  {
    "attributes":{
      "href":"www.link2.com"
    }
  }
]

我能够获得值“www.link1.com”的唯一方法是通过:

对于饲料 1:

<a href="{{item['link']['attributes']['href']}}">link1</a>

对于饲料 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]在那个视图上显示吗?

对于任何反馈,我们都表示感谢。谢谢!

4

2 回答 2

0

好的 - 所以我找到了上述问题之一的解决方案:“如何仅在特定视图中显示 [链接] [0]”

Pro:这是一个简单的代码,取决于正在显示的 activeTab / 视图。

缺点(?):因为我真的是 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 对象(键、值)(如果存在,而不是另一个)。尽管仍然感谢任何帮助,但我仍然肯定会尝试找到解决方案。

请让我知道您的想法,或者我如何改进问题的解决方案!

谢谢!鹏。

于 2013-09-30T02:58:03.930 回答
0

在您的模型控制器中,您可以重建 JSON 对象以使它们相似。两个提要中的值link都应该是一个数组。

然后在您的模板中,您可以简单地使用ngRepeat从数组内部获取项目。

于 2013-09-29T16:50:23.673 回答