我有dir-paginate
行:
<tr class="table-rw-hover" dir-paginate="historyEntry in HistoryLog | orderBy:sort:reverse | itemsPerPage: 10" ng-if="isRequiredRoleToView(historyEntry.RequiredRoleToView)">
我已经确认HistoryLog
中没有空条目,但historyEntry.RequiredRoleToView
参数始终以未定义的形式出现在我的isRequiredRoleToView
函数中。
$scope.isRequiredRoleToView = function (requiredRoleToView) {
console.log(requiredRoleToView); //always undefined
if (CurrentUser.Role === 'ADMN') {
return true;
}
if (requiredRoleToView) {
return (CurrentUser.Role === requiredRoleToView.Role);
}
return false;
};
我尝试修改ng-if
来传递父historyEntry
对象,它也是未定义的。如果我将整个HistoryLog
集合传递给函数,它会很好地完成所有内容。我的猜测是dir-paginate
枚举集合的方式存在一些问题。
我在其他地方以类似的方式使用dir-paginate
和ng-if
并且工作正常:
<tr class="table-rw-hover" dir-paginate="referenceMaterial in ReferenceMaterials | orderBy:sort:reverse | itemsPerPage: 10" ng-if="referenceMaterial.DeletedOnDate == null">
我甚至尝试将ng-if
缩减为ng-if="historyEntry"
,并且总是评估为false。但是如果我console.log(HistoryLog)
它显示17个完全填充的条目而没有空值。
- 编辑 -
我将dir-paginate
指令替换为ng-repeat
,所有内容都很好,所以看起来问题出在dir-paginate
上。不幸的是,这会破坏我的分页。
<tr class="table-rw-hover" ng-repeat="historyEntry in HistoryLog | orderBy:sort:reverse" ng-if="isRequiredRoleToView(historyEntry.RequiredRoleToView)">