value绑定将ViewModel的参数绑定在form元素中,当form元素与ViewModel的属性建立关联之后,form元素的改变将会直接修改ViewModel的数据。
示例代码:
//.W片段 <p>Login name: <input bind-value="userName" /></p> <p>Password: <input type="password" bind-value="userPassword" /></p> //.js片段 //初始化空白块 this.userName=justep.Bind.observable(""); this.userPassword=justep.Bind.observable("abc");
设置更新ViewModel的时间
在使用value绑定的时候,我们经常要将value绑定在input、textarea中。在默认情况下,当我们的input标签失去焦点的时候,才会触发ViewModel的改变。我们可以通过valueUpdate属性来控制何时来更新ViewModel。
- input:这种事件需要现代浏览器的支持(IE9+),当input、textarea输入时改变ViewModel。如果不考虑浏览器兼容问题,这种方式将是最好的。
- keyup:放开按键的时候改变ViewModel。
- keypress:按下按键的时候改变ViewModel
- afterkeydown:通过keydown事件来处理同步,算是一种比较好的同步方式。
示例代码:
//.W片段 <p>Your value: <input bind-value="someValue, valueUpdate: 'input'" /></p> <p>You have typed: <span bind-text="someValue"></span></p> //.js片段 this.someValue=justep.Bind.observable("edit me");
valueAllowUnset 属性
valueAllowUnset 只对select有用。示例代码:
//.W片段 <p> Select a country: <select bind-options="countries, optionsCaption: 'Choose one...', value: selectedCountry, valueAllowUnset: true"></select> </p> //.js片段 this.countries=['Japan', 'Bolivia', 'New Zealand']; this.selectedCountry=justep.Bind.observable('Latvia');
在这段代码中,我们将valueAllowUnset设置为true,此时我们将value设置为“Lativia”时,列表中不存在此项,那么将会把selectedCountry设置为undefined,界面显示“Choose one…”项。
双向绑定、单项绑定和无绑定
示例代码:
//.W片段 <!-- 双向绑定,双向同步 --> <p>First value: <input bind-value="firstValue" /></p> <!-- 单项绑定,只能从textbox同步到model --> <p>Second value: <input bind-value="secondValue" /></p> <!-- 无绑定,textbox的改变不会引起任何改变 --> <p>Third value: <input bind-value="secondValue.length > 8" /></p> //.js片段 this.firstValue=justep.Bind.observable("hello"); this.secondValue="hello, again";
关于如何绑定可以在代码中看到。
本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5!
阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443
评一波