2017-01-06 44 views
0

我的問題是空清楚,我想,我有婁代碼在我的控制器如何來驗證列表是angularjs

vf.filtroses = []; 
    FiltrosService.currentuser().success(function(data, status) { 
     vf.filtroses = data; 
    }); 

我想驗證是否vf.filtroses具有的元素,或者是空的。 我.lenght tryed和等於:

vf.nofiltros = false; 
    vf.filtroses = []; 
    FiltrosService.currentuser().success(function(data, status) { 
     vf.filtroses = data; 
    }); 
    if(angular.equals([], vf.filtroses)){ 
     vf.nofiltros = true; 
    } 

,但它不爲我工作!

任何想法plz ??

+1

如果(vf.filtroses.length <1){}不起作用? – rrd

+0

[檢查數組是否爲空或存在]的可能重複(http://stackoverflow.com/questions/11743392/check-if-array-is-empty-or-exists) – Liam

+0

我試過所有這些:( – Smahane

回答

1

把大小檢查成功函數內部:

FiltrosService.currentuser().success(function(data, status) { 
    vf.filtroses = data; 
    if(!(vf.filtroses && vf.filtroses.length>0)){ 
      vf.nofiltros = true; 
      } 
    }); 
+0

是的,這是我在搞什麼 – Smahane

+0

你可以簡化這段代碼:'vf.nofiltros =!vf.filtroses ||!vf.filtroses.length' – Romain

-1

檢查null或undefined會解決你的問題。

if(vf.filtroses!==undefined && vf.filtroses!=null){ 
    vf.nofiltros = true; 
} 
0

您可以使用。長度檢查數組或對象列表的長度。

vf.nofiltros = false; 
vf.filtroses = []; 
FiltrosService.currentuser().success(function(data, status) { 
    vf.filtroses = data; 

    vf.nofiltros = vf.filtroses && vf.filtroses.length > 0; 
});