knockout访问子函数中的父可观察对象

时间:2015-10-08 17:22:30

标签: knockout.js

在淘汰赛中给出了一个viewmodel

 function Model() {
     var self = this;
     this.mycollection = ko.observableArray("")
     this.foo = ko.observable("foo");
     ....
  }

在observable数组中如何访问父级?

 function mycollection (bar){
           var self = this;
           this.bar = ko.observable(bar);
           this.myFunction = function() {
              var foo = $parent.foo();
              ...
              }
           }

是自我。$ parent.foo? 或者在调用函数时我是否需要以某种方式传递它?

 <div class="modal-body" data-bind="foreach: selectedFilteredPoCollection">
    ....
     <button type="button" class="btn btn-default" 
                                   data-bind=" click:  myFunction($parent.foo()) </button>

  </div>

2 个答案:

答案 0 :(得分:2)

bind它是你的点击功能。

<button type="button" data-bind="click: myFunction.bind($parent, $parent.foo)"></button>

答案 1 :(得分:0)

你需要将你的点击处理程序包装在一个函数中,如下所示:

<button type="button" 
        class="btn btn-default" 
        data-bind=" click: 
             function(){ 
                 myFunction($parent.foo());
             }"> </button>

请参阅此处的注释2:http://knockoutjs.com/documentation/click-binding.html