我似乎无法弄清楚如何使这个东西工作,无论我把这个绑定放在哪里都行不通
这是我的剧本
<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。其他一切都有效,但不是这个有焦点
任何线索?
答案 0 :(得分:1)
如果notificationService
是observable
,则您的绑定需要
data-bind="hasFocus:notificationService().aaaa"
(notificationService
之后的调用括号)。此外,您需要将tabindex
添加到<a>
代码,因为您的主播不是链接(它没有href
),因此通常无法进行关注。< / p>
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;