2013-04-04 50 views
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> 

然後在我的視圖模型CHAGE是

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

,但它不是在visibility.I反映了調試中firebug.The方法被調用。 任何人有任何想法?

+0

你必須顯示沒有足夠的代碼,找出什麼是錯的。但是,如果您的'completeReview'是一個可觀察的事物,您需要使用'self.completeReview(1);' – nemesv 2013-04-04 08:04:47

+0

'設置它,我嘗試了您所引用的內容。但是,當點擊鏈接時出現錯誤.TypeError:self.completeReview一個函數 [Break On This Error] \t self.completeReview(true); – 2013-04-04 08:24:01

+0

你正在JavaScript中使用'self.completeReview',但在數據綁定中只使用'complete'? – Thewads 2013-04-04 10:24:38

回答

0

您不能像正常變量那樣設置可觀察性。無需在視圖中返回任何內容,因爲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); 

Working Fiddle