textInput绑定目的
textInput绑定主要用于或者
例如:
源码:
Password:
viewmodel:
备注1:textInput绑定 VS value绑定
虽然value结合也可以进行双向文本框和视图模型性能的结合,但是博主更喜欢textInput,因为他是实时更新的。value绑定与textInput绑定的主要的区别在于:
即时更新
value默认情况下,只有当用户将焦点从文本框移开后才会更新您的模型。textInput每次击键或其他文本输入时立刻更新模型。
浏览器的事件处理
不同的浏览器有着文本输入机制,如剪切,拖动,或接受自动完成建议的事件在不同的浏览器中机制是不一致。value绑定,有额外的选项,如valueUpdate: afterkeydown获得对特定事件的更新,但是有可能不兼容所有的浏览器。
textInput结合是专门用来处理各种浏览器的不同机制,即使在应对不同的文字输入机制也能保持一致和直接更新模型。
不要尝试使用value和textInput在相同的元素上进行绑定。
hasFocus绑定目的
hasFocus绑定是视图模型属性与DOM元素的焦点状态绑定。它是一个双向绑定,所以:
如果您的视图模型属性设置为true或者false,相关的元素将成为聚焦的或未聚焦。 如果用户手动对焦或unfocuses相关元件,所述视图模型属性将被设置为true或false相应。 如果您正在构建中,编辑元素动态显示复杂的形式,你想控制,用户应该开始打字,或插入符的响应位置,这是非常有用的。
示例1
这个例子中当文本框当前具有焦点时则显示消息,并可以使用一个按钮通过编程方式触发焦点。
源码:
示例2
因为hasFocus绑定是双向绑定,这可以使切换的“编辑”模式更加便捷。
源码:
Click the name to edit it; click elsewhere to apply changes.
checked绑定目的
checked绑定主要用于复选框()或单选按钮() 并与视图模型属性进行绑定。
当用户更改了表单控件,这将更新您的视图模型属性的值。同样,当您更新您的视图模型的值,也将直接反映到表单控件上。
注意:对于文本框,下拉列表,以及所有以非可勾选表单控件,需要使用value绑定或者textInput绑定读写元素的值,而不是checked绑定。
示例1:复选框绑定
源码:
示例2:多复选框附带数组绑定
源码: