2016-01-22 78 views
0

我想在每次選中複選框時在函數中分配一個URL。但是我也想在取消選中checkBox時重新分配URL的初始值。我可以從以下thread創建下面的代碼,但是當取消選中該框時,URL不會被重新分配。抱歉,我是KnockoutJS和JavaScript的新手。KnockoutJS - 當複選框被選中或未選中時如何重新指定URL

HTML

<input type="checkbox" name="myCheckBox" data-bind="checked:isChecked, click: setUrl">Search Supplier<br> 

JS

searchShippingCodesUrl = '/Parteners/Search'; 
... 
... 
ischecked: ko.observable(false), 
     setUrl: function() { 
       searchShippingCodesUrl = '/Suppliers/Search'; 
       return true;    
     }, 

謝謝您的時間。

+0

選中或取消時,你的setUrl功能不click事件會開除使用任何檢查isChecked來確定網址應該是什麼 – dfperry

回答

3

僅使用click上一個複選框結合,如果你需要區分點擊與該複選框是否改變了狀態的內部設置。 checked綁定爲您捕獲視圖的狀態,因此您可以在視圖模型中使用它。要採取行動,當它改變時,你subscribe以可觀察到的(我在這裏借用變量從dfperry的例子):

ischecked.subscribe(function (newValue) { 
    searchShippingCodesUrl = newValue ? supplierSearch : partnerSearch; 
}); 
1

你需要在你的setUrl功能對證isChecked來獲取切換效果:

var partnerSearch = '/Partners/Search', 
    supplierSearch = '/Suppliers/Search'; 

searchShippingCodesUrl = partnerSearch; 

... 

ischecked: ko.observable(false), 
setUrl: function() { 

    searchShippingCodesUrl = (ischecked() ? supplierSearch : partnerSearch); 
    return true;    
} 
相關問題