Html 切换淘汰表/子表的展开/折叠按钮

Html 切换淘汰表/子表的展开/折叠按钮,html,typescript,knockout.js,Html,Typescript,Knockout.js,我有一张使用敲除和打字脚本的表格。表上的每条记录都可以通过“展开”按钮展开。单击此展开按钮可切换折叠按钮。我遇到的问题是,当表中有超过1条记录时,单击此展开按钮将切换表中所有记录的折叠按钮。还有什么方法可以切换我点击的那个吗?代码如下: HTML 打字稿 class SearchPrintedChecksModel { public expand = ko.observable(false); public checkRuns = ko.observableArray<Ch

我有一张使用敲除和打字脚本的表格。表上的每条记录都可以通过“展开”按钮展开。单击此展开按钮可切换折叠按钮。我遇到的问题是,当表中有超过1条记录时,单击此展开按钮将切换表中所有记录的折叠按钮。还有什么方法可以切换我点击的那个吗?代码如下:

HTML

打字稿

class SearchPrintedChecksModel {
    public expand = ko.observable(false);
    public checkRuns = ko.observableArray<CheckRunModel>(null);
 }

  $(document).ready(() => {
    ko.applyBindings(printModel);
});


var printModel = new SearchPrintedChecksModel();

export function ToggleExpand(data: CheckRunModel): void {
    printModel.expand(!printModel.expand());
    GetBankDrafts(data);
}

您将希望每个表跟踪自己的扩展状态。您的toggle变量相对于表而言是全局的,因此它将全局应用于所有表

首先,您必须为每个表提供一个单独的可观察对象,以跟踪它们各自的扩展状态。将扩展变量从SearchPrintedChecksModel移动到表CheckRunModel?的模型?。然后在ToggleExpand函数中更改printModel.expand。。。到数据。展开。。。。最后在绑定中更改为可见:$parent.expand to just visible:expand

class SearchPrintedChecksModel {
    public expand = ko.observable(false);
    public checkRuns = ko.observableArray<CheckRunModel>(null);
 }

  $(document).ready(() => {
    ko.applyBindings(printModel);
});


var printModel = new SearchPrintedChecksModel();

export function ToggleExpand(data: CheckRunModel): void {
    printModel.expand(!printModel.expand());
    GetBankDrafts(data);
}