Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DurandalJs:将焦点放在合成视图上的第一个输入元素的通用解决方案_Javascript_Knockout.js_Durandal - Fatal编程技术网

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

Javascript DurandalJs:将焦点放在合成视图上的第一个输入元素的通用解决方案,javascript,knockout.js,durandal,Javascript,Knockout.js,Durandal,我想知道是否有一种通用的解决方案可以将焦点放在合成视图上的第一个输入/内容可编辑字段上 通过订阅特定的生命周期事件,我可以在我的每个viewModels中做到这一点,但我无法以更通用的方式做到这一点-最好只在一个特定的地方订阅一次 有办法做到这一点吗? 提前谢谢 将视图的html包含在根节或div中 将data bind=“focusFirstEditable:true”添加到此根元素 使用该名称创建自定义绑定处理程序,并将逻辑放在第一个可编辑的元素上,并在自定义绑定处理程序的init中设置焦点

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

通过订阅特定的生命周期事件,我可以在我的每个viewModels中做到这一点,但我无法以更通用的方式做到这一点-最好只在一个特定的地方订阅一次

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

  • 将视图的html包含在根节或div中
  • 将data bind=“focusFirstEditable:true”添加到此根元素
  • 使用该名称创建自定义绑定处理程序,并将逻辑放在第一个可编辑的元素上,并在自定义绑定处理程序的init中设置焦点
  • 将自定义绑定处理程序添加到composition.addHandler(自定义绑定处理程序)

  • 这将创建一个延迟绑定,该绑定将在您的组合完成并集中后发生。无论您希望哪个视图发生这种情况,都只需将其添加到根元素。

    这是
    knockout
    还是
    durandal
    相关的吗?这是durandal相关的,我想在视图合成之后再聚焦。我不熟悉这一点,但您可以。您不能将其放入
    binder.js中的
    bindingComplete
    方法中吗(默认情况下,哪个是noop)?