Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套模板_Javascript_Templates_Knockout.js_Multidimensional Array_Knockout Templating - Fatal编程技术网

Javascript 嵌套模板

Javascript 嵌套模板,javascript,templates,knockout.js,multidimensional-array,knockout-templating,Javascript,Templates,Knockout.js,Multidimensional Array,Knockout Templating,我有以下代码: function Session(name, index) { this.Messages = []; this.Name = name; this.Index = index; } var vm = {}; vm.Sessions = ko.observableArray([new Session("Foo", 0), new Session("Bar", 1)]); ko.applyBindings(); vm.Sessions()[0].Mes

我有以下代码:

function Session(name, index) {
    this.Messages = [];
    this.Name = name;
    this.Index = index;
}

var vm = {};
vm.Sessions = ko.observableArray([new Session("Foo", 0), new Session("Bar", 1)]);

ko.applyBindings();

vm.Sessions()[0].Messages.push("Hello foo");
根据这一观点:



${$data.Name}

  • ${$data}
  • 如您所见,有一个包含数组的对象。所以我制作了会话的可观察数组,它变得可观察,包括内部属性。我想在这里显示嵌套的“中继器”

    昨天我不知何故成功地完成了这个脚本。在不显示属性名称的情况下,有趣的是什么,例如,
    会话[${$data.Index}]。消息
    。不幸的是,我删除了那个测试脚本

    现在我尝试重新创建,但它不起作用


    问题是我不想让它在没有显示相关属性的情况下工作。我只想让工作成为嵌套模板。

    这似乎更接近您想要实现的目标:

    • ${name}

    • {{each(prop,val)$data} {{如果$.isArray(val)}
    • ${prop}
        {{each(index,arrayVal)val} {{each(i,mVal)arrayVal}
      • ${i}${mVal}
      • {{/每个}} {{/每个}} {{else}
      • ${prop}:${val}
      • {{/if} {{/每个}}
    • 和代码:

      var viewModel = {
          Sessions : ko.observableArray([
              {name:"foo",index: 0, messages:[{body:"Hello foo 1"},{body:"Hello foo 2"}]},
              {name:"bar",index: 1, messages:[{body:"Hello foo 3"},{body:"Hello foo 4"}]}
          ])
      };
      
      // ko magic...
      ko.applyBindings(viewModel);
      

      另请参见

      对此表示抱歉。这只是从编辑器复制粘贴时的不准确。所有ID都已正确放置。