2016-12-08 51 views
1

我需要顯示的「無類」這樣的IM使用這樣的消息:AngularJS陣列NG-如果

<div ng-repeat="categoryItem in categories"> 
       <div ng-show="categoryItem.length">No categories</div> 

並不起作用。

這是對象的數組,所以在控制檯中,如果我有2個類別,我可以看到這一點:

Array[2] 
0 
: 
Object 
$$hashKey 
: 
"object:77" 
created_at 
: 
"2016-12-07T19:45:29.997063" 
created_by 
: 
"test" 
id 
: 
39 
name 
: 
"Category 1" 
updated_at 
: 
"2016-12-07T19:45:29.997105" 
updated_by 
: 
null 
__proto__ 
: 
Object 
1 
: 
Object 
$$hashKey 
: 
"object:78" 
created_at 
: 
"2016-12-07T19:45:34.202915" 
created_by 
: 
"test" 
id 
: 
40 
name 
: 
"Category 2" 
updated_at 
: 
"2016-12-07T19:45:34.202947" 
updated_by 
: 
null 
__proto__ 
: 
Object 
length 
: 
2 

所以,當我刪除所有類別我編程的簡單,如果:

   if($scope.categories.length === 0){ 
       console.log("No categories"); 
      } 

它的作品,但消息不顯示在視圖中,什麼即時通訊做錯了?

+0

難道你不想顯示的數據時,沒有一個長度,而不是當有? – Claies

+0

我嘗試!categoryItem.length和categoryItem.length === 0並且不起作用 –

回答

2

由於消息在ng-repeat之內,因此有0個類別時不會顯示消息。由於類別數組的長度爲0,因此視圖中將有0個項目。

將您的「沒有分類」的ng-repeat像這樣的外部消息:

<div ng-repeat="categoryItem in categories"> 
    <div>{{categoryItem.name}}</div> 
</div> 
<div ng-hide="categories.length > 0">No categories</div> 

請注意,我用ng-hide並檢查您的categories數組的長度來確定「沒有分類目錄應該顯示「」消息。

+0

您有所有原因,這是正確的解決方案。它的工作原理,謝謝。 –

+0

如果此解決方案適合您,請隨時接受此答案爲正確。 – bob