Javascript 为什么我无法在此自定义绑定中获取当前viewModel?

Javascript 为什么我无法在此自定义绑定中获取当前viewModel?,javascript,knockout.js,Javascript,Knockout.js,这是包含我的绑定的.haml代码。我删除了不相关的绑定 #date-extension .filter-extension-container .filter-extension-button .button-close #hand-graph-container{"data-bind" => "with:dateGraph"} #x-axis #hand-graph{"data-bind" => "foreach: {data

这是包含我的绑定的.haml代码。我删除了不相关的绑定

#date-extension
  .filter-extension-container
    .filter-extension-button
      .button-close
    #hand-graph-container{"data-bind" => "with:dateGraph"}
      #x-axis
      #hand-graph{"data-bind" => "foreach: {data:graphData}"}
        %div{"data-bind" => "interactiveBar: $data"}
我有一个定制装订的开始,就像这样

ko.bindingHandlers.interactiveBar = {
  init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
debugger;
  },
  update: function(element, valueAccessor, allBindingsAccessor, viewModel) {

  }
};

但当我查看viewModel时,它等于valueAccessor,只是我要传递的数据对象。我想要访问dateGraph viewModel,并且应该能够访问它,因为根据文档,我使用了“with:graphData”

foreach
中,
viewModel
属性是在该范围级别绑定的数据

有几个选项(假设您使用的是淘汰2.0):

  • 传递
    $parent
    而不是
    $data
    ,并通过
    valueAccessor()访问
    dateGraph
    对象

  • 或者绑定处理程序的第五个参数实际上是绑定上下文。绑定上下文将具有
    $data
    $parent
    $parents
    $root
    属性。您可以看到属性的描述


foreach
中,
viewModel
属性是在该范围级别绑定的数据

有几个选项(假设您使用的是淘汰2.0):

  • 传递
    $parent
    而不是
    $data
    ,并通过
    valueAccessor()访问
    dateGraph
    对象

  • 或者绑定处理程序的第五个参数实际上是绑定上下文。绑定上下文将具有
    $data
    $parent
    $parents
    $root
    属性。您可以看到属性的描述