【问题标题】:Custom parameters on knockout click binding敲除点击绑定的自定义参数
【发布时间】:2012-06-11 06:38:10
【问题描述】:

我目前正在尝试使用自定义参数调用函数,但是我无法访问该参数,而是返回了一个 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);

【问题讨论】:

    标签: knockout.js knockout-2.0


    【解决方案1】:

    应该是 $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>
    

    Example

    【讨论】:

    • 知道了,谢谢!为什么索引进入第一个参数,数据进入第二个参数?
    • 第一个参数将用于转换方法中的“this”指针。如果您通过 $parent.convert.bind(5,$index()) alert(this) 将在消息框中显示 5。 BW 你可以像这样使用绑定
    • 我明白了。是的,我知道 div 绑定,但我希望数组显示在单个 div 中。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签