2017-05-31 36 views
2

我有一个问题,我试图用ng-repeat在Angularjs中显示一个数组,但它显示的是整个json数组,而不仅仅是里面的文本。Angular.js ng-repeat数组显示为json

这是我的数组

$scope.problems = [ 

    { 
     problem: "problem1", 
     works: [ 
      "a0", 
      "a9" 
     ] 
    } 
] 

而这正是我想要显示它

<li ng-repeat="works in problems | filter: searchCard">{{works}}</li> 

现在{{works}}标签显示了这个活文档中:

{"problem":"probleem1","works":["a0","a9"]} 

根据到大多数教程和我已经看到它应该显示a0和a9而不是enti的东西重新json线。

我的第二个问题可能完全不同的是,我怎样才能正确显示文本,但也隐藏所有人,直到一个人使用输入来搜索“作品”输入字段。

+0

对于第二个问题,您应该打开一个新的线程,只有以解决第二个问题 –

+0

@ DeblatonJean - 菲利普我将在未来所需的代码! –

回答

0

您可以使用像@Maher提到的嵌套ng重复。另外,为了隐藏数据直到输入searchCard,可以在嵌套ui中使用ng-if指令。

<li ng-repeat="item in problems | filter: searchCard"> 
    {{item.problem}} 
    <ul ng-if="searchCard"> 
    <li ng-repeat="work in item.works">{{work}}</li> 
    </ul> 
</li> 
+3

我不明白为什么你添加'ng-if' –

+1

至于我的了解OP说'我如何正确显示文本,但也隐藏所有人,直到一个人使用输入来搜索“作品”输入字段' –

+0

这完全像预期,谢谢! –

3

当你有对象数组在ng-repeat上你必须选择那个对象params;在此示例中我们的对象PARAMS是“问题”“作品”

也在我们的目标,我们有“字符串数组”和字符串数组没有PARAMS,因为我们在这个使用直接样本{{work}}是字符串数组的对象。

<li ng-repeat="item in problems | filter: {problem: searchCard}"> 
    {{item.problem}} 
    <ul> 
    <li ng-repeat="work in item.works">{{work}}</li> 
    </ul> 
</li> 
+1

做完先生,谢谢你提醒我 – Maher

+0

嘿!谢谢你,它像预期的那样工作,如果可以,快速跟进问题,我可以隐藏列表,直到有人使用过滤器:searchCard我希望数组隐藏,直到用户搜索示例A1,并且它会在文本中显示A1 ?我认为它可能需要ng-if,但我不知道如何。 –

+0

你必须指定你正在搜索的参数 – Maher