我记得在博客中读过以下摘录。
$ timeout将新事件添加到浏览器事件队列中(渲染引擎已在此队列中),因此它将在新超时事件之前完成执行。
我想知道在angular / javascript中是否有比使用更好的方法
setTimeout(() => {
// do something after dom finishes rendering
}, 0);
Run Code Online (Sandbox Code Playgroud)
在DOM完全完成诸如更新* ngFor并在页面上呈现结果之类的任务后执行代码。
在 Angular 2 中反转复选框值时遇到一些麻烦。
在 Angular 1.x 中,我们可以创建如下所示的指令。
.directive('invertValue', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
ngModel.$parsers.unshift(function(val) { return !val; });
ngModel.$formatters.unshift(function(val) { return !val; });
}
};
})
Run Code Online (Sandbox Code Playgroud)