是否可以通过如下所示的数据绑定声明设置 showErrorConsole observable?这个炸弹出现了“ k.apply不是一个功能”。我知道我可以在这里使用内联函数,但感觉不对,打字更多。
HTML:
<div data-bind="event: { mouseover: showErrorConsole(true) }" ></div>
<div id="devConsole" data-bind="visible: showErrorConsole">
<div><button data-bind="click: showErrorConsole(false)">X</button></div>
</div>
视图模型:
AjaxErrorsModel = (function () {
function Constructor() {
var self = this;
self.errors = ko.observableArray();
self.hasErrors = ko.computed(function () {
return self.errors().length > 0;
}, self);
self.showErrorConsole = ko.observable(false);
};
return Constructor;
})();
答案 0 :(得分:0)
可能有一个巧妙的KO技巧让你这样做,但最简单的方法是将它添加到你的构造函数中:
self.showErrorConsoleIsFalse = function() {
self.showErrorConsole(false);
};
然后:
<button data-bind="click: showErrorConsoleIsFalse">
或者如果你想要鼠标悬停事件,那就是同样的想法:
self.showErrorConsoleIsTrue = function() {
self.showErrorConsole(true);
};
<div data-bind="event: { mouseover: showErrorConsoleIsTrue }" ></div>
修改强>
当然,没有什么可以阻止你从jQuery管理这些事件:
<div class="showConsole" ></div>
$(".showConsole").hover(function() {
yourViewModel.showErrorConsole(true);
}, function() {
yourViewMode.showErrorConsole(false);
});