如何使用knockout.js在编辑弹出窗口中显示详细信息

时间:2015-03-17 18:07:39

标签: knockout.js

我在客户名单表格上有一个按钮。在单击特定行编辑按钮时,我想在编辑窗口中显示详细信息。

如何将客户ID传递给弹出窗口?

<button data-bind="click: $root.edit"> Edit</button>

1 个答案:

答案 0 :(得分:0)

我不太确定&#34;在编辑窗口中显示细节&#34;位 - 这一切都取决于&#34;编辑窗口&#34;意味着在您的代码的上下文中。也许你可以创建一个&#34;编辑窗口&#34; observableArray中每位客户的对话框,并在点击时切换其可见性。 G_S's suggestion要有某种&#34; selectedCustomer&#34;可观察也听起来是个好主意。

至于传递客户ID,我做了一点JSFiddle演示了如何做到这一点。

<强> HTML:

<h3>Click a row to obtain a customer's id:</h3>

<div data-bind="foreach: customers">
    <div data-bind="click: $root.selectCustomer" class="person">
        <div>Customer Name: <span data-bind="text: name"></span>
        </div>
        <div>Customer Age: <span data-bind="text: age"></span>
        </div>
        <div>Customer ID: <span data-bind="text: id"></span>
        </div>
    </div>
</div>

<强> JS:

var vm = function () {
    this.customers = ko.observableArray([{
        name: "Jim",
        age: "40",
        id: "1"
    }, {
        name: "Jack",
        age: "20",
        id: "2"
    }, {
        name: "Jill",
        age: "30",
        id: "3"
    }]);
    this.selectCustomer = function (customer) {
        alert(customer.id);
    };
};

ko.applyBindings(new vm);

在此代码中,整个Customer对象将传递给selectCustomer(),并且可以修改所有Customer属性。

http://jsfiddle.net/r2sooLot/6/