angularjs:当行添加到在中间时,检测ng-erepeat何时结束
angularjs: detect when ng-repeat finishes when rows added in the middle
发布的每个涉及检测ng重复何时完成的解决方案都依赖于范围$最后一个值,如下所示:
angular.module('fooApp')
.directive('onLastRepeat', function () {
return function (scope, element, attrs) {
if (scope.$last) {
setTimeout(function () {
scope.$emit('onRepeatLast', element, attrs);
}, 1);
}
};
})
问题是,只有当您将其追加到列表的末尾时,此解决方案才有效。如果在中间插入数据,请确定范围$最后一个总是错误的,你不知道angularjs什么时候完成了对新绑定行的更新。有没有人有一个解决方案,无论ng repeat在哪里渲染数据都能工作?
示例:
html:
<button ng-click="addToList()"></button>
<table>
<tbody>
<tr ng-repeat="foo in list" on-last-repeat><td><span>{{foo}}</span></td></tr>
</tbody>
</table>
控制器代码:
$scope.addToList = function() {
$scope.list.splice(1, 0, 4);
}
$scope.list = [1, 2, 3];
如果您在上面代码为$scope.last的示例中单击按钮,则该指令将在渲染完成时触发。
你能用这样的东西吗?
angular.module('fooApp')
.directive('onLastRepeat', function () {
return function (scope, element, attrs) {
if (scope.$middle) {
setTimeout(function () {
scope.$emit('onRepeatMiddle', element, attrs);
}, 1);
}
if (scope.$last) {
setTimeout(function () {
scope.$emit('onRepeatLast', element, attrs);
}, 1);
}
};
})
相关文章:
- 如何检测是否有溢出
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何检测用于WebGL的专用或集成显卡
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng keyup不检测android退格
- ng-重复检测条件的首次出现
- 检测复选框是否在 Angular.js ng-change 事件中处于选中状态
- ng-change 检测 ng 模型在选择框中为空或无效,然后选择第一个有效选项
- 调用ng-erepeat内部的API函数,提示错误.达到10$digest()迭代.在angularjs中中止
- angularjs:当行添加到在中间时,检测ng-erepeat何时结束
- Angular JS-如何检测ng重复已经完成
- 在angular.js中,检测$last的指令不能与ng-if一起工作
- 如何检测HTML页面上是否存在ng-controller
- 用ng-click或jquery检测平板电脑上的长点击
- 检测液滴发生的位置(ng-flow)