如何在可观察数组中正确地将文本框值绑定回模型
How to properly bind text box value back to model in a observable array?
我有一个模型,有一个可观察数组,我可以在文本框中显示数据,但我不知道如何将其绑定回原始数组。
这是我的工作样本。
<ul data-bind='foreach: frameworks'>
<li>
<button class='btn' value='pick me'
data-bind='text: name, click: $parent.selectFramework'>
</button>
</li>
</ul>
<input type='text' data-bind='value: selectedFramework().name' />
<pre data-bind='text: ko.toJSON($root.selectedFramework, null, 4)'>
</pre>
var Framework = {
name: ''
};
var App = new function () {
var self = this;
self.frameworks = ko.observableArray();
self.selectFramework = function (item) {
self.selectedFramework(item);
};
self.selectedFramework = ko.observable(Framework);
};
App.frameworks([{name: 'foo'}, {name: 'bar'}]);
ko.applyBindings(App);
你就快成功了。你需要让每个框架上的name属性都是可观察的。我已经在这里更新了你的JsFiddle
App.frameworks([{
name: ko.observable('foo')
}, {
name: ko.observable('bar')
}]);
该值只存储在你的selectedFramework可观察对象中,所以你可以通过App.selectedFramework()来访问它。可观察对象不会接受任何变量,它会在内部存储你传递给它的任何值。如果你想要更新外部框架变量,你可以在selectFramework函数中这样做。
self.selectFramework = function (item) {
self.selectedFramework(item);
Framework = item;
};
相关文章:
- 使用敲除绑定多个文本数据
- 在文本框上绑定谷歌地点自动完成,而无需实例化谷歌地图
- 将包含 javascript 的文本绑定到模板中的 innerHTML
- 将 d3 演示中的圆圈和文本替换为包含自定义 HTML 和 ko 绑定的 foreignObject
- 将按钮绑定到几个基于文本框中值的大小而激活的文本框
- 如何使用文本下拉列表中的绑定值来执行计算
- 如何连接文本绑定中使用的可观察量的值
- KnockoutJS,文本与值绑定.为什么文本绑定不绑定到输入字段
- 使用挖空将选项文本绑定到具有对象数组的属性
- 挖空 要在单个标记中显示的文本绑定
- 在单击按钮之前,不会显示已编译的文本绑定
- Kendo MVVM 使用换行符将文本绑定到文本区域
- 数组的文本绑定元素
- 删除文本绑定不能用于输入
- 在knockout中扩展文本绑定
- js文本绑定客户端更改不更新视图模型
- 如何在Angularjs中将文本绑定为DOM对象
- 将文本绑定到子对象的属性
- 删除显示值的文本绑定
- 如何做一个onmouseover文本绑定