Knockout.js$模板中的父密钥名并删除可观察项

Knockout.js$模板中的父密钥名并删除可观察项,knockout.js,unbind,observable,parents,Knockout.js,Unbind,Observable,Parents,关于淘汰赛,我有两个简单的问题: 如何获取$parents密钥,例如,如果我的视图模型为: viewModel = { ModelA: { ModelB : { ModelC : { someprop } } } } 我有3个模板,第一个模板是渲染ModelA,第二个模板是渲染ModelB,第三个模板是渲染ModelC,如何在ModelC模板中获得以下内容: <a data-bind="visible: viewModel.{$parents[1].key}.{$parents[0].k

关于淘汰赛,我有两个简单的问题:

  • 如何获取$parents密钥,例如,如果我的视图模型为:

    viewModel = { ModelA: { ModelB : { ModelC : { someprop } } } }
    
    我有3个模板,第一个模板是渲染ModelA,第二个模板是渲染ModelB,第三个模板是渲染ModelC,如何在ModelC模板中获得以下内容:

    <a data-bind="visible: viewModel.{$parents[1].key}.{$parents[0].key}.{$data.key}.someprop" />
    
    <input type="checkbox" data-bind="click: function() { viewModel.removeIt(someprop) }" />
    
    但它不起作用


  • 我不太确定您在第一个问题中试图做什么,但我已经创建了一个提琴,可以帮助您回答这个问题:


    至于删除一个可观察对象,您可以使用
    delete

    将其从类中删除,谢谢您的删除选项。关于第一个问题,我想获得父属性名,而不必在模板中硬编码(类似于dotnet中的反射)。
    viewModel.removeIt = function(node) {
        ko.cleanNode(node);
    };