3

我想知道是否有一个通用的解决方案可以将焦点放在组合视图上的第一个输入/内容可编辑字段上。

我可以通过订阅特定的生命周期事件在我的每个视图模型中执行此操作,但我无法以更通用的方式执行此操作 - 在一个特定位置仅订阅一次会很棒。

有没有办法做到这一点?提前致谢。

4

1 回答 1

3
  1. 将视图的 html 包含在根部分或 div 中。
  2. 将 data-bind="focusFirstEditable: true" 添加到此根元素。
  3. 使用该名称创建一个自定义绑定处理程序,并将您的逻辑用于查找第一个可编辑的元素并将焦点设置在自定义 bindingHandler 的 init 中。
  4. 将您的自定义绑定处理程序添加到 composition.addHandler(yourCustomBindingHandler)。

这将创建一个惰性绑定,该绑定将在您的撰写完成并集中后发生。无论您希望这发生在哪个视图中,只需将其添加到根元素即可。

于 2013-10-11T18:25:16.170 回答