绑定到过滤的对象属性knockout嵌套的foreach

时间:2017-01-31 20:52:25

标签: javascript arrays object knockout-2.0 knockout-3.0

我正在尝试理解$parent$data并试图根据$parent值过滤掉对象数组。

<p>My kids:</p>
    <ul data-bind="foreach: kids">
        <li> <span data-bind="text: $data" ></span>      
              <ul data-bind="foreach: grandKids.filter(function (obj) { return obj.mother === $parent })">
                 <li><span data-bind="text: $data.name"></span></li>                      
             </ul>
         </li>
      </ul>


    <script src="Scripts/knockout-3.4.1.js"></script>
    <script>
        var vm = {
            name : ko.observable("Anjan"),
            age: ko.observable(40),
            kids: ["Mira", "Teresa"],
            grandKids: [
                         { name: "Andy", mother: "Mira" }, 
                         { name: "Alice", mother: "Mira" }, 
                         { name: "Alex", mother: "Teresa" }, 
                         { name: "Abby", mother: "Teresa" }
                       ]
        };

1 个答案:

答案 0 :(得分:1)

对于遇到此问题的任何人,将元素绑定到过滤集中,我确信还有其他方法可以实现,但我解决这个问题的方法是使用无容器的KO绑定,如下面:

grandKids

我仍然不清楚为什么我需要在无序列表的UI绑定中将vm.grandKids属性完全限定为{{1}}。