嵌套foreach逐字母读取值,而不是整个单词

Nested foreach reads value letter by letter instead of whole word

本文关键字:单词 foreach 读取 嵌套      更新时间:2023-09-26

我想要嵌套foreach,并为内部foreach提供外部foreach的值。问题是,提供的值是逐字母迭代的,而不是作为一个完整的单词。这是代码:
html

<div data-bind="foreach: { data: mysections, as: 'section'}">
      <span data-bind="text: $data"></span>
      <div data-bind="foreach: section ">
        b<span data-bind="text: $root.myconsole($data)"></span>
        <span  data-bind="text: $data.content"></span>
        <br>
      </div>
    </div>

js

  var vm =new function AppViewModel() {
    self.mysections=ko.observableArray(['sec1', 'sec2','sec3']);    
        self.sec1 = ko.observableArray([{"content":"asdf1"}]);
        self.sec2 = ko.observableArray([{"content":"asdf2"}]);
        self.sec3 = ko.observableArray([{"content":"asdf3"}]);
        self.myconsole = function(data){console.log(data)};
    }
     ko.applyBindings(vm);

这是小提琴http://jsfiddle.net/frjapyre/2/(在控制台中查找$data,以查看是否逐字记录。)

基本上,您需要使用关键字"sec1"来获取值,而在代码中,您需要迭代关键字本身。

尝试

<div data-bind="foreach: { data: mysections, as: 'section'}">
     <span data-bind="text: $data"></span>
     <div data-bind="foreach: $parent[section]">
        b<span data-bind="text: $root.myconsole($data)"></span>
        <span  data-bind="text: $data.content"></span>
        <br>
    </div>
</div>