在我的淘汰应用中,我试图像这样使用setFocus
<div class="row" data-bind="visible: $root.inOwnerShipChangingMode">
<div class="medium-12 columns">
<input type="text" placeholder="Enter user name to give ownership (trans)" data-bind="autoComplete: { selected: $root.newOwnerForLocationId, options: observableArrayOfUsersWhoCanBecomeOwners}, hasFocus: true" />
</div>
</div>
它不起作用。您可以看到隐藏的元素取决于 $ root.inOwnerShipChangingMode 。我试过把它从可见的绑定中删除,但仍然无法正常工作。
我的淘汰赛版本是3.3.0。
答案 0 :(得分:0)
您是否尝试将hasFocus
绑定到可观察值 - 或者甚至只是返回true
的函数? hasFocus
是双向绑定,因此可能无法使用不能在两个方向上工作的内容。
另外,如果绑定&lt; input /&gt;在绑定时元素不可见,浏览器可能会拒绝授予它焦点。稍后设置父&lt; div&gt;时要显示,你的&lt; input /&gt;因为hasFocus
没有理由重新绑定而没有得到重点 - 它仍然具有与加载时相同的值/属性/属性,并且没有任何改变尊重。
所以我建议为hasFocus
分配一个observable,即使它的值永远不会改变。