从表中填充textarea

时间:2013-12-26 16:46:43

标签: javascript jquery twitter-bootstrap knockout.js modal-dialog

我有一个从Knockout.JS可观察数组生成的表。正如您所看到的,在每一行中,我在最后一列中都有一个引导按钮,我在其中调用一个模态。在模态中,我有文本区域,我想用所选行填充。我已经尝试过data-bind =" value:Number"但它不会填充模态。有什么建议吗?

<tbody data-bind="foreach: notes" >
    <tr>
        <td data-bind="text: Number"></td>
        <td data-bind="text: Date"></td>
        <td data-bind="text: Time"></td>
        <td data-bind="text: User"></td>
        <td><a data-toggle="modal" data-target="#editnotemodal" class="btn btn-xs btn-default">Edit <span class="glyphicon glyphicon-edit"></span></a></td>
    </tr>
</tbody>

1 个答案:

答案 0 :(得分:0)

如果我是你,我会使模态的上下文依赖于像选定行ko.observable这样的东西。这将允许您动态共享上下文。一个例子 -

在您看来 -

<tbody data-bind="foreach: notes" >
    <tr data-bind="click: setActiveRow">
        <td data-bind="text: Number"></td>
        <td data-bind="text: Date"></td>
        <td data-bind="text: Time"></td>
        <td data-bind="text: User"></td>
        <td><a data-toggle="modal" data-target="#editnotemodal" class="btn btn-xs btn-default">Edit <span class="glyphicon glyphicon-edit"></span></a></td>
    </tr>
</tbody>
<div class="modal" data-bind="with: activeRow">
    <h2 data-bind="text: User"></h2>
    <textarea data-bind="value: Number" />
</div>

在您的视图模型中

var activeRow = ko.observable();

function setActiveRow (sender) {
    activeRow(sender);
}

现在每当你有一个activeRow并且模态显示时,它正确地数据绑定回你的表行。