0

我有一个跨度,我将跨度与敲除绑定,以便在页面加载时它可以工作。我试图通过锚标记单击绑定来更改值。

<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 中进行了调试。该方法被调用。有人知道吗?

4

1 回答 1

0

你不能像普通变量一样设置 observable 。并且不需要在视图上返回任何东西,因为 observables 会自动通知你 UI 的变化。试试这个 :

html

<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);

工作小提琴

于 2013-04-04T11:24:06.370 回答