2

在与更改 observable 值相关的所有正常处理完成后(最重要的是对 DOM 的更改),我如何执行我的自定义代码?

我尝试订阅 observable 的方法,但该函数执行得太早(DOM 尚未修改)。

4

2 回答 2

3

模板绑定有一个 afterRender 函数:

请参阅注释 3,大约在页面的一半处:http: //knockoutjs.com/documentation/template-binding.html

于 2012-06-27T13:19:40.060 回答
3

使用计算出的 observable 和Knockout "throttle" 扩展器

基本思想是:

  1. 创建一个计算的 observable,它取决于您要跟踪的实际 observable。
  2. 使用 Knockout 油门扩展器来延迟计算 observable 的更新。即使是 0 毫秒的延迟也足以让 DOM 在重新计算计算的 observable 之前完成更新。
  3. 订阅受限制的计算 observable

上面引用的 Knockout 油门扩展器文档页面上的“示例 2:当用户停止键入时做某事”使用了这种技术。

于 2012-06-27T16:55:32.087 回答