如何将当前对象绑定到文本输入
How to bind current object to text input?
消息模型
function MessageModel(content) {
var self = this;
self.content = content;
}
RoomViewModel
self.currentMessage = ko.observable(new MessageModel(""));
self.addMessage = function () {
self.messages.push(self.currentMessage());
self.currentMessage(new MessageModel(""));
};
查看
<form data-bind="submit: addMessage">
<input data-bind='value: currentMessage.content, valueUpdate: "afterkeydown"' />
<button id="ButtonSendMessage" type="submit">Send</button>
</form>
当用户在输入框中键入内容时,希望更新当前消息内容属性,当我单击"添加"时,希望添加currentMessage内容。但是内容总是空白的。
也许因为内容不是可观察的,并且值绑定是错误的,因为currentMessage
是可观察的所以要绑定的任何属性都必须像currentMessage().prop
一样,或者在元素上下文中使用with: currentMessage
绑定,请尝试这样的操作:
function MessageModel(content) {
var self = this;
self.content = ko.observable(content);
}
我还建议你使用textInput
绑定:
<form data-bind="submit: addMessage">
<input type="text" data-bind='textInput: currentMessage().content' />
<button id="ButtonSendMessage" type="submit">Send</button>
</form>
text输入绑定:
textInput绑定将文本框()或文本区域()与视图模型属性链接,从而在视图模型属性和元素值之间提供双向更新。与值绑定不同,textInput从DOM为所有类型的用户输入提供即时更新,包括自动完成、拖放和剪贴板事件。
参考:TextInput绑定
相关文章:
- 使用敲除绑定多个文本数据
- 在文本框上绑定谷歌地点自动完成,而无需实例化谷歌地图
- 将包含 javascript 的文本绑定到模板中的 innerHTML
- 将 d3 演示中的圆圈和文本替换为包含自定义 HTML 和 ko 绑定的 foreignObject
- 将按钮绑定到几个基于文本框中值的大小而激活的文本框
- 如何使用文本下拉列表中的绑定值来执行计算
- AngularJs的Kendo UI:当用户在网格中选择行时,如何在文本框字段上绑定数据
- 使用XML将头文本、段落文本和按钮和每个图像绑定
- Jquery:如何动态绑定带有onload事件的文本框
- 如何绑定网格'使用Telerik的带有文本框的数据源
- Angular Js将文本输入与模型绑定
- AngularJS - 需要帮助在绑定文本输入中显示字符串的当前长度
- 从javascript获取水印绑定文本框的文本值
- Aurelia:绑定文本自定义元素的内容
- 属性名称中带有短划线的数据绑定文本
- activejs:数据绑定文本区域导致无法用null调用removeChild
- 如果选中复选框,则绑定文本框值
- 取消绑定文本框以选择文本
- 使用onclick事件-jquery的响应绑定文本框
- 如何嵌套数据绑定文本