2015-06-02 3 views
1
<div id="root" data-bind="with: $data.Building"> 
    <div data-bind="foreach: $data.Offices"> 
     <div data-bind="foreach: $data.desks"> 
      <div data-bind="foreach: $data.Legs"> 
       <button class="btnDestroyDeskLeg"> Destroy</button> 
      </div> 
     </div> 
    </div> 
</div> 
<script> 
     $("#root").on('click', '.btnDestroyDeskLeg', function() 
     { 
      var context = ko.contextFor(this), 
       Office = ** ? **, 
       Desk = context.$parent, 
       Leg = context.$data; 
     }); 
</script> 

Как я могу получить $ Parent от $ Parent? Иными словами, что должно заменить «**? **», чтобы получить офис?

ответ

4

Вы можете использовать массив $parents, как описано в knockout documentation.

Чтобы получить родительский контекст можно использовать

$parents[0] 

Чтобы получить контекст GrandParent вы можете использовать

$parents[1] 

Так что в вашем случае вы можете использовать

Office = context.$parents[1] 
Смежные вопросы