【问题标题】:Foreach inside foreach not working in knockoutforeach 里面的 foreach 在淘汰赛中不起作用
【发布时间】:2014-04-04 04:09:49
【问题描述】:

我正在尝试在淘汰赛中在 foreach 中应用 foreach,但它不起作用外部 foreach 对我来说工作正常,但对于内部 foreach 是它说 MyFMnu1 is undefined

如果我把这个内部 foreach 放在外面,那么它可以工作,但为什么它不能在 foreach 内部工作。

<div data-bind="foreach: MyFmnu">
      <!-- ko if: key === 'ASM' -->
           <input type="checkbox" value="ASM"  class="styled"  
               name="fldMenuCheck_Acc1" id="fldMenuCheck_Acc1"
               style="width:10%;"/>
      <!-- /ko -->
      <div data-bind="foreach: MyFmnu1">
           <!-- ko if: key === 'ASMS' -->
                <input type="checkbox" value="ASMS"  class="styled"  
                     name="fldMenuCheck_Acc12" id="fldMenuCheck_Acc12"
                     style="width:10%;"/>
           <!-- /ko -->
       </div>
</div>

我的视图模型

var AccountsViewModel = function () {

    var self = this;

    self.myfavmenu = ko.observable();
    self.PerLzdmenuList = ko.observable();
    self.MyPerlzdMenus = ko.observable();

    self.myfavmenuOtherCount = ko.observable();
    self.MyFmnu = ko.observableArray([]);
};

【问题讨论】:

  • 你能发布你的视图模型吗?
  • 显示完整的 HTML 标记。我在这里只看到 1 个foreach
  • 你能告诉我们 MyFmnu 吗?除非您在 MyFmnu 对象上有一个名为 MyFmnu1 的属性,否则它将不起作用。

标签: knockout.js knockout-2.0


【解决方案1】:

在 foreach 绑定中,绑定上下文是集合项,而不是根视图模型。 要在 foreach 绑定中访问父上下文,请使用 $parent,如下所示:

<div data-bind="foreach: MyFmnu">
      <!-- ko if: key === 'ASM' -->
           <input type="checkbox" value="ASM"  class="styled"  
               name="fldMenuCheck_Acc1" id="fldMenuCheck_Acc1"
               style="width:10%;"/>
      <!-- /ko -->
      <div data-bind="foreach: $parent.MyFmnu1">
           <!-- ko if: key === 'ASMS' -->
                <input type="checkbox" value="ASMS"  class="styled"  
                     name="fldMenuCheck_Acc12" id="fldMenuCheck_Acc12"
                     style="width:10%;"/>
           <!-- /ko -->
       </div>
</div>

更多信息在这里:http://knockoutjs.com/documentation/binding-context.html

【讨论】:

  • 它对我有用。谢谢,但是当循环中有大量数据时会挂起。
【解决方案2】:

如果您有一个MyFmnu1 数组作为MyFmnu 数组中每个对象的属性,它将起作用。

【讨论】:

    猜你喜欢
    • 2014-01-10
    • 1970-01-01
    • 2015-05-06
    • 2023-03-13
    • 1970-01-01
    • 2019-05-01
    • 2012-07-17
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多