Javascript 完成ng hide后添加函数
我有一个tr:Javascript 完成ng hide后添加函数,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一个tr: <tr ng-hide="func(item.status)" ng-repeat="item in itemArray" > <td></td> . . </tr> 如何在执行所有ng hide语句以获得正确结果后才更新qVisible?我假设您在某个地方有一个类似于..的下拉列表 <select ng-model="selectedStatus" ng-options="status for status in st
<tr ng-hide="func(item.status)" ng-repeat="item in itemArray" >
<td></td>
.
.
</tr>
如何在执行所有ng hide语句以获得正确结果后才更新qVisible?我假设您在某个地方有一个类似于..的下拉列表
<select ng-model="selectedStatus" ng-options="status for status in statuses"></select>
在您的html中
<div ng-show="qVisible">...</div>
。。。
这是一种不接触DOM的方法。我假设您在某个地方有一个下拉列表,看起来像
<select ng-model="selectedStatus" ng-options="status for status in statuses"></select>
在您的html中
<div ng-show="qVisible">...</div>
。。。
这是一种不接触DOM的方法。您可以让$watch监听与数据相同的数据,ng repeat运行与隐藏相同的功能:
function update(newValue) {
var i;
$scope.numberOfShownItems = 0;
for (i = 0; i < newValue.length; i += 1) {
if ($scope.func(newValue[i])) {
$scope.numberOfShownItems += 1;
}
}
$scope.qVisible = !!$scope.numberOfShownItems;
}
$scope.items = [1,2,3,4,5,6];
$scope.func = function (item) {
if (item % 2 === 0) {
return true;
}
return false;
}
$scope.$watch('items', update);
函数更新(newValue){
var i;
$scope.numberOfShownItems=0;
对于(i=0;i
例如:
您可以让$watch监听与数据相同的数据,ng repeat运行与hide相同的功能:
function update(newValue) {
var i;
$scope.numberOfShownItems = 0;
for (i = 0; i < newValue.length; i += 1) {
if ($scope.func(newValue[i])) {
$scope.numberOfShownItems += 1;
}
}
$scope.qVisible = !!$scope.numberOfShownItems;
}
$scope.items = [1,2,3,4,5,6];
$scope.func = function (item) {
if (item % 2 === 0) {
return true;
}
return false;
}
$scope.$watch('items', update);
函数更新(newValue){
var i;
$scope.numberOfShownItems=0;
对于(i=0;i
例如:
您能想出一种方法来做到这一点,而不必查询控制器中的dom吗?我只需要计算可见行的数量。我能想到的最糟糕的情况是每次调用func时o手动更新一个var…(这不是一个好的解决方案)您能想出一种方法来做到这一点而不查询控制器中的dom吗?我只是计算可见行的数量。我能想到的最糟糕的情况是每次调用func时o手动更新一个var…:)这不是一个好主意solution@BhumiSinghal我认为您试图做的是“过早优化”.即使考虑优化..查询DOM也很慢..至少比运行一个小for循环慢得多。ohk…我已经有一个循环..我现在正在尝试适应计算var@BhumiSinghal我假设您对Angular比较陌生。学习Angular的最好方法是忘记使用JQuery的方法avent已经看过了,首先看看这个,你可以从你的项目中删除jquery。只有在绝对必要的时候才包括jquery。是的,我对Angular非常陌生,是的,我只想用Angular的方式来做……但是在极度需要jquery的时候坦率地说,你可以在angularjs中构建一个巨大的项目,而不包括jquery。因此,这是可能的。你只需要找到一种方法。不要屈从于jquery操纵DOM的老方法。@BhumiSinghal我认为你试图做的是“过早优化”.即使考虑优化..查询DOM也很慢..至少比运行一个小for循环慢得多。ohk…我已经有一个循环..我现在正在尝试适应计算var@BhumiSinghal我假设您对Angular比较陌生。学习Angular的最好方法是忘记使用JQuery的方法avent已经看过了,首先看看这个,你可以从你的项目中删除jquery。只有在绝对必要的时候才包括jquery。是的,我对Angular非常陌生,是的,我只想用Angular的方式来做……但是在极度需要jquery的时候坦率地说,您可以在angularjs中构建一个大型项目,而不包括jquery。因此,这是可能的。您只需要找到一种方法。不要屈服于旧的jquery方式来操作DOM。