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

时间:2013-09-06 10:57:45

标签: javascript knockout.js durandal

我想知道是否有一个通用的解决方案可以将焦点放在合成视图上的第一个输入/可信区域。

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

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

1 个答案:

答案 0 :(得分:3)

  1. 将视图的html包含在根节或div中。
  2. 将data-bind =“focusFirstEditable:true”添加到此根元素。
  3. 使用该名称创建自定义绑定处理程序,并将您的逻辑用于查找可编辑的第一个元素,并将焦点设置在自定义bindingHandler的init中。
  4. 将自定义绑定处理程序添加到composition.addHandler(yourCustomBindingHandler)。
  5. 这将创建一个延迟绑定,该绑定将在您的撰写完成并且集中化后发生。无论您希望这种情况发生什么,只需将其添加到根元素即可。