如何在页面上反映数据更改时添加promise/event?
How to add promise/event when data change is reflected on page?
考虑这样的场景 -- 我在网页上有两个中继器 A 和 B,还有一个按钮,单击时调用函数 "load_data"。
该函数将加载数据并成功(承诺)它将设置两个范围变量 A 和 B。
剩下的是 angular 工作——它会注意到 A 或 B 已更改,并且会重新呈现给定的转发器。
但我想向其中添加 post-action -- 承诺或事件,名称并不重要,一般来说,任何通知我变量 A 上的所有渲染的机制 和B完成了
我的背景故事很单薄——我必须在渲染后测量几个元素的大小和位置。我找到了一个指令( http://gsferreira.com/archive/2015/03/angularjs-after-render-directive/ ),它基本上添加了事件 "after-render" 但它是面向元素的并且适用于选定的元素。当我在寻找更面向数据的东西时,使用了数据,更新了 所有 元素。
范围更新后(如果您在 Angular 摘要周期内,否则您可能需要 $apply
范围),Angular 将更新 DOM 在同一个同步堆栈中。
这意味着任何异步执行的代码都将在 Angular 完成消化后执行。所以你可以使用 setTimeout
或 $timeout
:
mypromise.then(function() {
$scope.model = 'updated';
$timeout(function() {
// This code will be executed after DOM has been updated
});
})
考虑这样的场景 -- 我在网页上有两个中继器 A 和 B,还有一个按钮,单击时调用函数 "load_data"。
该函数将加载数据并成功(承诺)它将设置两个范围变量 A 和 B。
剩下的是 angular 工作——它会注意到 A 或 B 已更改,并且会重新呈现给定的转发器。
但我想向其中添加 post-action -- 承诺或事件,名称并不重要,一般来说,任何通知我变量 A 上的所有渲染的机制 和B完成了
我的背景故事很单薄——我必须在渲染后测量几个元素的大小和位置。我找到了一个指令( http://gsferreira.com/archive/2015/03/angularjs-after-render-directive/ ),它基本上添加了事件 "after-render" 但它是面向元素的并且适用于选定的元素。当我在寻找更面向数据的东西时,使用了数据,更新了 所有 元素。
范围更新后(如果您在 Angular 摘要周期内,否则您可能需要 $apply
范围),Angular 将更新 DOM 在同一个同步堆栈中。
这意味着任何异步执行的代码都将在 Angular 完成消化后执行。所以你可以使用 setTimeout
或 $timeout
:
mypromise.then(function() {
$scope.model = 'updated';
$timeout(function() {
// This code will be executed after DOM has been updated
});
})