Kendo UI开发教程(22): Kendo MVVM 数据绑定(十一) Value

27 篇文章 3 订阅
27 篇文章 81 订阅

Value绑定可以把ViewModel的某个属性绑定到DOM元素或某个UI组件的Value属性。当用户修改DOM元素或UI组件的值时,绑定的ViewModel的值也随之发生改名。同样,如果ViewModel的值发生变化,对应的UI也会发生变化。
注:Value绑定只可以用在支持Value属性的DOM元素或UI组件。支持Value绑定的元素有input,textarea和select, 支持value绑定的UI组件有AutoComplete, DropDownlist, ComboBox, DatePicker, TimePicker,NumbericTextBox和Slider.
如果你需要设置DOM元素或UI组件的文本或是HTML内容,请使用text和html绑定。
对于Checkboxes () 或 radio button()请使用checked绑定。

Input和textarea Value绑定

1<div id="view">
2    <input data-bind="value: inputValue" />
3    <textarea data-bind="value: textareaValue"></textarea>
4</div>
5<script>
6var viewModel = kendo.observable({
7    inputValue: "Input value",
8    textareaValue: "Textarea value"
9});
10 
11kendo.bind($("#view"), viewModel);
12</script>

上面代码当调用bind方法后,input元素显示inputValue的值,而textarea显示textareaValue的值。 如果用户修改input或textarea的值,对应的inputValue和textareaValue也随之变化。

20130822001

缺省情况下,Value绑定依赖于DOM 的change事件,也就是当DOM元素失去焦点时触发该事件,UI的变化实现对ViewModel的更新。然而可以通过修改data-value-update属性来使用不同的DOM事件,比如keyup或keypress事件(不可使用keydown事件,只是因为keydown事件DOM元素的value尚未发生变化)。

1<div id="view">
2    <input data-value-update="keyup" data-bind="value: inputValue" />
3</div>
4<script>
5var viewModel = kendo.observable({
6    inputValue: "Input value"
7});
8 
9kendo.bind($("#view"), viewModel);
10</script>

Select元素绑定value

当Select元素使用了预定义的选项时,Kendo MVVM 将根据ViewModel的值把和ViewModel值相同的option选项设定为选中状态。

1<select data-bind="value: selectedColor">
2    <option value="red">Red</option>
3    <option value="green">Green</option>
4    <option value="blue">Blue</option>
5</select>
6<script>
7var viewModel = kendo.observable({
8    selectedColor: "green"
9});
10 
11kendo.bind($("select"), viewModel);
12</script>

在本例中,第二个选项(Green)被选中,这是因为它的value和selectedColor相同。 UI修改选项也会更新selectedColor的值。 如果option元素没有定义value,那么使用option的text属性。

如果select支持多项选择,此时对应的ViewModel的属性也应该为一个数组。例如:

1<select data-bind="value: selectedColors" multiple="multiple">
2    <option>Red</option>
3    <option>Green</option>
4    <option>Blue</option>
5</select>
6<script>
7var viewModel = kendo.observable({
8    selectedColors: ["Blue","Green"]
9});
10 
11kendo.bind($("select"), viewModel);
12</script>

20130822002

 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值