2017-05-31 61 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