代码如下:
<table>
<tr ng-repeat="action in actionList">
<td></td>
...
</tr>
<tr ng-show="!actionList.length">
<td>
No data.
</td>
</tr>
</table>
这有效,但不是我想要的方式,因为它最初显示“无数据”消息。如果actionList.length不为0,我最初需要显示任何内容,并且表中包含数据。如果actionList.length为0则显示“No data”消息,但不显示为表的一部分。
更新
我已添加到我的控制器中:
$scope.isButtonClicked = false;
$scope.queryResult = function () {
$scope.isButtonClicked = true;
$scope.actionList = [];
$scope.actionsQuery.resetPage();
appendPage();
};
但是,“没有数据。”每次点击都会显示消息。当有一些数据时,它会很快出现并消失,当没有数据时,它会正确显示。
答案 0 :(得分:18)
为什么你会混淆?很多方法你都可以考虑解决这个问题。
尝试这种简单的方法
<table>
<tr ng-show="actionList.length!=0" ng-repeat="action in actionList">
<td></td>
...
</tr>
<tr >
<td ng-show="actionList.length==0">
No data.
</td>
</tr>
</table>
actionList
是未定义还是null $scope.actionList
是array
actionList
null或未定义(尝试使用ng-if而不是div标签中的ng-show)强> 下面这样的事情
<div ng-show="actionList !='null' && actionList !='undefined'">
<table>
<tr ng-show="actionList.length!=0" ng-repeat="action in actionList">
<td></td>
...
</tr>
<tr >
<td ng-show="actionList.length==0">
No data.
</td>
</tr>
</table>
</div>
<div ng-show="actionList =='null'|| actionList =='undefined'">
No data.
</div>
另一种简单的方法,而不是我的更新1
尝试以下代码。
<table>
<tr ng-show="actionList!='undefined' && actionList!='null' && actionList.length!=0" ng-repeat="action in actionList">
<td></td>
...
</tr>
<tr >
<td ng-show="actionList=='undefined' ||actionList=='null' || actionList.length==0 ">
No data.
</td>
</tr>
</table>
您可以尝试使用ng-if代替ng-show
我想要,因为它最初显示&#34;没有数据&#34;信息。如果actionList.length不为0,我最初需要显示任何内容,并且表中包含数据。如果actionList.length为0则显示&#34;无数据&#34;消息,但不是表格的一部分。
如此简单......
创建一个新的布尔范围变量,如命名为IsButtonClick
全球声明$scope.IsButtonClick==false
在按钮点击事件
$scope.IsButtonClick==true
然后复制以下代码而不是您的HTML代码。
<div ng-show="IsButtonClick">
<table>
<tr ng-show="actionList!='undefined' && actionList!='null' && actionList.length!=0" ng-repeat="action in actionList">
<td></td>
...
</tr>
</table>
</div>
<div ng-show="IsButtonClick"> <span ng-show="actionList=='undefined' ||actionList=='null' || actionList.length==0 "> No data.</span> </div>
但是,&#34;没有数据。&#34;每次点击都会显示消息。如果有一些数据很快就会显示并消失,当没有数据时,它会正确显示
试试这种方式
$scope.queryResult = function () {
$scope.isButtonClicked = false;
$scope.actionList = [];
$scope.actionsQuery.resetPage();
appendPage();
if($scope.actionList.Length==0)
{
$scope.isButtonClicked = true;
}
};
和html是
<div ng-show="IsButtonClick">
<table>
<tr ng-show="actionList!='undefined' && actionList!='null' && actionList.length!=0" ng-repeat="action in actionList">
<td></td>
...
</tr>
</table>
</div>
<div ng-show="IsButtonClick"> <span ng-hide="actionList !='undefined' || actionList!='null' || actionList.length!=0 "> No data.</span> </div>
答案 1 :(得分:0)
尝试放
<tr ng-show="!actionList.length">
<td ng-bind="noData">
</td>
</tr>
答案 2 :(得分:0)
试试这个:
<div ng-switch="!!actionsList.length">
<div ng-switch-when="true">
<table>
<tr ng-repeat="...">
<td> ... </td>
</tr>
</table>
</div>
<div ng-switch-when="false">
No data
</div>
</div>
答案 3 :(得分:-2)
尝试ng-if:
<div ng-if="actionList && actionList.length === 0">
No data.
</div>
<table ng-if="actionList && actionList.length > 0">
<tr ng-repeat="action in actionList">
<td></td>
...
</tr>
</table>
只要actionList是falsy(undefined或null),就不会显示任何内容。