Javascript 从textInput字段自动更新observablearray当前行中的字段
我有一个绑定到视图模型的表。选择表格行时,将根据以下内容更新字段(注释):Javascript 从textInput字段自动更新observablearray当前行中的字段,javascript,knockout.js,Javascript,Knockout.js,我有一个绑定到视图模型的表。选择表格行时,将根据以下内容更新字段(注释): 与表位于同一div中的字段(这是一个文本区域,在选择上表中的行时应更新该区域,并在用户选择另一行时更新该表) viewModel当前正在执行以下操作: var resultsViewModel = function() { var self = this; self.model = ko.observableArray(); self.editNotes = ko.observable()
与表位于同一div中的字段(这是一个文本区域,在选择上表中的行时应更新该区域,并在用户选择另一行时更新该表)
viewModel当前正在执行以下操作:
var resultsViewModel = function() {
var self = this;
self.model = ko.observableArray();
self.editNotes = ko.observable();
self.selectItem = function(record) {
self.selectedItem(record);
self.editNotes(record.Notes);
}
self.getData () {
// some ajax stuff to populate the table
}
}
这对于在
textarea
中显示注释很好,但是如果用户更改了textarea
的内容,我如何让它转到另一个方向,并填充observearray
中的字段?您需要绑定到textarea
的值:
<td>
<textArea data-bind="value: $data.Notes"></textArea>
</td>
我已经完成了一个快速和简化的演示
编辑以添加:
这里有一个更新的fiddle,它更符合您的需要:您可以将td
绑定到与textarea
相同的属性。例如:
var resultsViewModel=function(){
var self=这个;
self.editNotes=ko.可观察(“初始值”);
}
var vm={
selectedResult:ko.可观察(空),
结果:[新建resultsViewModel(),新建resultsViewModel()]
};
vm.selectResult=函数(结果){vm.selectedResult(结果);};
ko.应用绑定(vm)代码>
。所选{背景色:粉红色;}
挑选
请添加如何在视图中包含该文本区域
;帮助我们重现您的问题。啊哈,我知道我做了什么,我忘了为textarea添加代码段。实际上,我为textarea添加代码段的方式意味着它没有显示在最后一个问题中。修正了,现在更有意义了。为什么您将td
绑定到Notes
而不是editNotes
?(另一方面,如果你进一步扩展你的代码会有所帮助,这样它可以直接反映你的情况……)好的,我在下面的答案中添加了一个更接近我的答案,但最后我有两个文本区域。当用户选择行时,文本区域应该被更新。@ JimFR可能是,但是您应该真正考虑更新您的问题来反映这一点。你应该检查一下;如果你遵循它,可能会有人在发布后5分钟内明确回答你的问题。。。(无论如何,我的答案已经更新了。)说得好,做得好!我倾向于有点过于简练,但有时会胡言乱语!:-这几乎正是我想要的!我将对其进行测试,然后将其标记为接受:-)