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分钟内明确回答你的问题。。。(无论如何,我的答案已经更新了。)说得好,做得好!我倾向于有点过于简练,但有时会胡言乱语!:-这几乎正是我想要的!我将对其进行测试,然后将其标记为接受:-)