Имя ключа Knockout.js $parent в шаблоне и удаление наблюдаемых

У меня есть 2 простых вопроса относительно нокаута:

  1. Как я могу получить ключи от родителей, например. если моя модель зрения:

    viewModel = { ModelA: { ModelB : { ModelC : { someprop } } } }
    

    и у меня есть 3 шаблона, первый шаблон рендеринга ModelA, второй ModelB и третий ModelC, как я могу получить следующее в шаблоне ModelC:

    <a data-bind="visible: viewModel.{$parents[1].key}.{$parents[0].key}.{$data.key}.someprop" />
    
  2. Как я могу удалить наблюдаемый someprop из ModelC во время выполнения. Я пытался встроить это в шаблон ModelC:

    <input type="checkbox" data-bind="click: function() { viewModel.removeIt(someprop) }" />
    

    и это в корневой странице

    viewModel.removeIt = function(node) {
        ko.cleanNode(node);
    };
    

    Но это не работает.

1 ответ

Я не совсем уверен, что вы пытаетесь сделать в своем первом вопросе, но я создал скрипку, которая должна помочь ответить на него: http://jsfiddle.net/FwJWG/

Что касается удаления наблюдаемого, вы можете просто удалить его из класса, используя delete: http://jsfiddle.net/7sS8k/

Другие вопросы по тегам