knockout中的可见性绑定不起作用

visibility binding in knockout is not working

本文关键字:绑定 不起作用 可见性 knockout      更新时间:2023-09-26

我有一个span,我将span与knockout绑定在一起,以便在页面加载时看到它。我试图通过锚标记点击绑定来改变值。

<a href='#'data-bind='click:ViewModel.setVisibility,disable:ViewModel.completeReview '>Show More</a>
<span data-bind="html: ViewModel.getText(Text),visible:ViewModel.completeReview "></span>

然后在我的视图模型变化是

self.completeReview = ko.observable(false);
self.setVisibility = function () {
    return self.completeReview = true;
};

但它没有反映在可见性中。我在firebug中调试。方法被调用。有人知道吗?

你不能像普通变量那样设置observable。不需要在视图上返回任何东西,因为可观察对象会自动将更改通知到UI。试试这个:

<a href='#'data-bind='click: ViewModel.setVisibility,disable:ViewModel.completeReview '>Show More</a>
<span data-bind="visible:ViewModel.completeReview ">
  Click to on Show More to hide or show me.
</span>

JS

function ViewModel()
{
  var self = this;
  self.completeReview = ko.observable(false);
  self.setVisibility = function () {
     self.completeReview(!self.completeReview());
  };
}
var ViewModel = new ViewModel();
ko.applyBindings(ViewModel);
工作小提琴