我使用过滤器在表格中显示一些值。通过ajax调用获取的值,我想在获取值时显示微调器。所以我写道:
app.filter("fetchedValue", function(){
return function(fetchedValue){
if(angular.isUndefined(fetchedValue)){
return "image";//this is the spinner
}else if(fetchedValue === null){
return "NA";
}
else{
return fetchedValue;
}
}
});
它不起作用。我不确定如何在未定义值时获取微调器。有人知道怎么做吗?
答案 0 :(得分:1)
我认为您误解了过滤器的用途。该函数应该返回true或false,具体取决于您是否希望过滤给函数的值。
请参阅https://docs.angularjs.org/api/ng/filter/filter和AngularJS custom filter function
要回答您的问题,请忘记过滤器,并在未定义值时在ng-if
上使用ng-show
或ng-hide
或<img>
。
<img ng-hide="fetchedValue" src="spinner.gif" />
这假设您获取的值始终是真实的。更强大的解决方案是在请求承诺的finally块中设置一个标志,然后根据该标志设置ng-hide
。