4

現在、カスタム パラメーターを使用して関数を呼び出そうとしていますが、パラメーターにアクセスできず、observable()代わりにオブジェクトが返されます。基本的に私がやろうとしているのは、リスト内の特定の要素のインデックスを取得することです。どうすればそうできるかについて、誰かが私を正しい方向に向けることができますか?

HTML:

<div id="formula">
  <b>Formula</b><br/>
    <!-- ko foreach: formula -->
      <span data-bind="text: $data, attr: {name: $index}, click: $parent.convert.bind($data,$index)"></span><br/>
    <!-- /ko -->
</div>

Javascript:

var ListModel = function(formula) {
  var self = this;
  self.formula = ko.observableArray(formula);
  self.convert = function(index) {
    alert(index); //this should show the index of the clicked element
  }
};

listModel = new ListModel(formula);
ko.applyBindings(listModel);
4

1 に答える 1

8

$parent.convert.bind($data,$index()) である必要があります

<div id="formula">
  <b>Formula</b><br/>
    <!-- ko foreach: formula -->
      <span data-bind="text: $data, attr: {name: $index}, click: $parent.convert.bind($data,$index())"></span><br/>
    <!-- /ko -->
</div>

于 2012-06-11T08:28:47.030 に答える