我正在使用似乎无法正常工作的按钮上的单击绑定创建此简单页面。这是代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
</head>
<body>
<div class="banner-bottom" width="100%" >
<div class="floatleft"><button data-bind="click: $root.showActivity">click me </button></div>
<div class="floatright">
<div data-bind="if: showActivityMenu">here is a message!</div>
<div class="inner"> some values here</div>
</div>
<div style="clear:both;"></div>
</div>
</body>
<script>
function AAsearchViewModel() {
var self = this;
self.showActivityMenu = ko.observable(true);
self.showActivity = function () {
self.showActivityMenu = ko.observable(false);
};
}
ko.applyBindings(new AAsearchViewModel());
</script>
</html>
在单击绑定上,我尝试同时使用和删除
$root
和$parent
,但这对输出没有影响。任何线索在这里做错了什么? 最佳答案
可观察变量是函数,因此在您的函数showActivity
中,您无需将其分配给可观察的showActivityMenu
新值,而是将其作为函数来分配新值。更改此代码:
self.showActivity = function () {
self.showActivityMenu = ko.observable(false);
};
有了这个:
self.showActivity = function () {
self.showActivityMenu(false);
};
您可以在knockout documentation中详细了解什么是可观察对象以及如何使用它们。特别注意阅读和写作可观察部分