6

私はこのコードを持っています:

<div id="menu">
  <ul data-bind="foreach: elements">
    <li>
      <span data-bind="text:domObj().tagName +' [' + classOriginal() + ']', click: $root.elementClick"></span>
      <ul class="menuclassitem" style="display:none" data-bind="foreach: classFixes">
        <li data-bind="text:$data, click:$root.classClick.bind($parent)"></li>
      </ul>
    </li>
  </ul>
</div>

ご覧のとおり、$parent オブジェクト ("elements" 配列内の現在の項目) を $root.classClick 関数に渡そうとしていますが、実際に渡される値は現在の内部ループの $data (現在の「classFixes」配列の $data)

classClick 関数内で $parent を使用する方法を知っている人はいますか?

4

2 に答える 2

0

classClick 関数の「this」変数は $parent です。classClick に渡される最初のパラメーターは $data です。このフィドルは

ko.applyBindings({
elements: [
    {
        classFixes : ["ab","cd"]
    },
    {
        classFixes : ["ef","gh"]
    }
 ],
 classClick : function(first)
 {
    alert(JSON.stringify(this));
    alert(JSON.stringify(first));
 }
});
于 2013-10-16T22:07:36.757 に答える