option
option绑定主要针对于< select >标签,它有以下绑定参数:
options: 指向数组或ko.observableArray(),KO会将数组元素转换为下拉选项。如果是ko.observableArray(),当动态增加或移除阵列元素时,下拉选项也会马上跟着增减。
optionsText, optionsValue: 用来产生下拉选项的数组元素可以是具有多个属性的JavaScript对象,通过optionText, optionValue设定属性名称字符串,我们可以指定用哪个属性当成 < option > 的文字内容,哪个属性当成value 。
value: 指向ViewModel的特定属性,属性一般以ko.observable()声明。如此当下拉菜单选取新值,所选的 < option > value值会更新到ViewModel属性上;而一旦该属性被程序修改或因使用者输入改变,下拉菜单也会自动切到新值对应的 < option > 选项上。
selectedOptions: 针对可多选(multiple)的 < select > ,selectedOptions可绑定到ko.observableArray()类型属性,该数组使会即时反应使用者所选取的项目集合;而变更该obervableArray数组的元素项目,也会立刻变更对应option的selected状态。
function MyViewModel() {
var self = this;
self.selectOptions = [
{name:"老大",id:1},
{name:"老二",id:2},
{name:"老幺",id:3}
];
self.result = ko.observable(2);//只能检测 value
}
ko.applyBindings(new MyViewModel());
<!-- 指定options来源,option text/value对应的属性名称 -->
<select data-bind ="options:selectOptions, optionsText: 'name', optionsValue: 'id', value:result"></select><br/>
排行:<span data-bind ="text:result" ></span ><br/>
将上面的代码练一练。