KnockoutJS hasFocus不起作用

时间:2018-01-09 14:32:23

标签: javascript knockout.js data-binding binding

我似乎无法弄清楚如何使这个东西工作,无论我把这个绑定放在哪里都行不通

这是我的剧本

<a class="dropdown-toggle expanded" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" data-bind="hasFocus:notificationService.aaaa">

this.aaaa = ko.observable(false);

我的HTML

<span data-bind="text:notificationService.aaaa"></span>

其中notificationService是使用Require传递的Object。其他一切都有效,但不是这个有焦点

任何线索?

1 个答案:

答案 0 :(得分:1)

如果notificationServiceobservable,则您的绑定需要

data-bind="hasFocus:notificationService().aaaa"

notificationService之后的调用括号)。此外,您需要将tabindex添加到<a>代码,因为您的主播不是链接(它没有href),因此通常无法进行关注。< / p>

&#13;
&#13;
const vm = {
  notificationService: ko.observable({
    aaaa: ko.observable(false)
  })
};

ko.applyBindings(vm);

setTimeout(() => {
  vm.notificationService().aaaa(true);
}, 800);
&#13;
a:focus {
  background-color: red;
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<a class="dropdown-toggle expanded" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" data-bind="hasFocus:notificationService().aaaa" tabindex="0">Anchor</a>
<span data-bind="text:ko.toJSON(notificationService)"></span>
&#13;
&#13;
&#13;