簡單的綁定
首先還是先定義一個ViewModel
復制代碼 代碼如下:
var AppViewModel = {
shouldShowMessage: ko.observable(true) ///初始化的時候div是visible的
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現在hidden勒
ko.applyBindings( AppViewModel);
並且通過ko.applyBindins進行激活Knockout。
然後定義一個UI界面元素
復制代碼 代碼如下:
<div data-bind="visible:shouldShowMessage">
You will see this message only when "shouldShowMessage" holds a true value.
</div>
運行之後此div在初始化的時候還是顯示的可以,之後就被重新賦值為false,導致此div被隱藏掉了。
參數:
當參數設置為一個假值時(例如:布爾值false, 數字值0, 或者null, 或者undefined) ,該綁定將設置該元素的style.display值為none,讓元素隱藏。它的優先級高於你在CSS裡定義的任何display樣式。
當參數設置為一個真值時(例如:布爾值true,或者非空non-null的對象或者數組) ,該綁定會刪除該元素的style.display值,讓元素可見。然後你在CSS裡自定義的display樣式將會自動生效。
如果參數是監控屬性observable的,那元素的visible狀態將根據參數值的變化而變化,如果不是,那元素的visible狀態將只設置一次並且以後不在更新。
使用函數或者表達式來控制元素的可見性
你也可以使用JavaScript函數或者表達式作為參數。這樣的話,函數或者表達式的結果將決定是否顯示/隱藏這個元素。例如:
復制代碼 代碼如下:
<script type="text/javascript">
var AppViewModel = {
shouldShowMessage: ko.observable(true), ///初始化的時候div是visible的
myValues: ko.observableArray([])
};
AppViewModel.shouldShowMessage = ko.observable(false); ///現在hidden勒
AppViewModel.myValues.push("some value"); ///向myValues數組中 添加一個項
ko.applyBindings( AppViewModel);
</script>
在ViewModel中添加了一個myValues的屬性值
同時給myValues的數組添加了一個項
並且在頁面UI中綁定了一個元素
復制代碼 代碼如下:
<div data-bind="visible: myValues().length > 0">
You will see this message only when 'myValues' has at least one member.
</div>
就這樣當添加完"some value"元素之後,myValues().length>0 則結果為true
那麼此div就會顯示出來。