DurandalJs:一种通用解决方案,用于将焦点放在组合视图上的第一个输入元素上

DurandalJs: A generic solution to put focus to the first input element on the composed view

本文关键字:组合 焦点 视图 输入 第一个 元素 用于 一种 解决方案 DurandalJs      更新时间:2023-09-26

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

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

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

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

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