敲除动态 foreach 绑定不起作用
Knockout dynamic foreach binding not working
我是淘汰赛的新手。我做了两个 div 一个可见,一个不可见,我想在点击可见 div 上的 link 时显示隐藏的 div,然后将一个可观察数组绑定到一个隐藏 div 内的无序列表并显示隐藏 div 及其中的动态值。
HTML:
<div class="visiblediv">
<ul>
<li><a data-bind="click: showMenuInfos" href="#">MES INFOS</a>
</li>
<li><a data-bind="click: showMenuInter" href="#">DEMANDE</a>
</li>
<li><a data-bind="click: showMenuOffres" href="#">OFFRES</a>
</li>
</ul>
</div>
<div class="hiddendiv" data-bind="visible: subMenuVisible">
<ul data-bind="foreach: subMenuItems">
<li data-bind="text: item"></li>
</ul>
</div>
JS:
function MenuFunctionVM() {
self = this;
self.subMenuVisible = ko.observable(false),
self.subMenuItems = [],
self.showMenuInfos = function () {
this.subMenuVisible(!this.subMenuVisible());
alert("clicked");
this.subMenuItems = menuInfos;
},
self.showMenuInter = function () {
this.subMenuVisible(!this.subMenuVisible());
this.subMenuItems = menuInter;
},
self.showMenuOffres = function () {
this.subMenuVisible(!this.subMenuVisible());
this.subMenuItems = menuOffres;
}
};
ko.applyBindings(new MenuFunctionVM());
请帮忙:)
这是一种方法。它会让你达到大约 75%,你需要添加逻辑来获得你正在寻找的行为。查看 JSFiddle 的工作演示
function MenuFunctionVM() {
self = this;
self.menuItems = [
{
name: "MES INFOS",
items: ["item0", "item1", "item2"]
},
{
name: "DEMANDE",
items: ["item3", "item4", "item5"]
},
{
name: "OFFRES",
items: ["item6", "item7", "item8"]
}
];
self.subMenuVisible = ko.observable(false)
self.subMenuItems = ko.observableArray([]);
self.showMenu = function (data) {
self.subMenuVisible(!self.subMenuVisible());
alert("clicked");
self.subMenuItems(data.items);
}
};
ko.applyBindings(new MenuFunctionVM());
<div class="visiblediv">
<ul data-bind="foreach: menuItems">
<li>
<a data-bind='click: $parent.showMenu,text: $data.name' href='#'></a>
</li>
</ul>
</div>
<div class='hiddendiv' data-bind='visible: subMenuVisible'>
<ul data-bind='foreach: subMenuItems'>
<li data-bind='text: $data'></li>
</ul>
</div>
我是淘汰赛的新手。我做了两个 div 一个可见,一个不可见,我想在点击可见 div 上的 link 时显示隐藏的 div,然后将一个可观察数组绑定到一个隐藏 div 内的无序列表并显示隐藏 div 及其中的动态值。
HTML:
<div class="visiblediv">
<ul>
<li><a data-bind="click: showMenuInfos" href="#">MES INFOS</a>
</li>
<li><a data-bind="click: showMenuInter" href="#">DEMANDE</a>
</li>
<li><a data-bind="click: showMenuOffres" href="#">OFFRES</a>
</li>
</ul>
</div>
<div class="hiddendiv" data-bind="visible: subMenuVisible">
<ul data-bind="foreach: subMenuItems">
<li data-bind="text: item"></li>
</ul>
</div>
JS:
function MenuFunctionVM() {
self = this;
self.subMenuVisible = ko.observable(false),
self.subMenuItems = [],
self.showMenuInfos = function () {
this.subMenuVisible(!this.subMenuVisible());
alert("clicked");
this.subMenuItems = menuInfos;
},
self.showMenuInter = function () {
this.subMenuVisible(!this.subMenuVisible());
this.subMenuItems = menuInter;
},
self.showMenuOffres = function () {
this.subMenuVisible(!this.subMenuVisible());
this.subMenuItems = menuOffres;
}
};
ko.applyBindings(new MenuFunctionVM());
请帮忙:)
这是一种方法。它会让你达到大约 75%,你需要添加逻辑来获得你正在寻找的行为。查看 JSFiddle 的工作演示
function MenuFunctionVM() {
self = this;
self.menuItems = [
{
name: "MES INFOS",
items: ["item0", "item1", "item2"]
},
{
name: "DEMANDE",
items: ["item3", "item4", "item5"]
},
{
name: "OFFRES",
items: ["item6", "item7", "item8"]
}
];
self.subMenuVisible = ko.observable(false)
self.subMenuItems = ko.observableArray([]);
self.showMenu = function (data) {
self.subMenuVisible(!self.subMenuVisible());
alert("clicked");
self.subMenuItems(data.items);
}
};
ko.applyBindings(new MenuFunctionVM());
<div class="visiblediv">
<ul data-bind="foreach: menuItems">
<li>
<a data-bind='click: $parent.showMenu,text: $data.name' href='#'></a>
</li>
</ul>
</div>
<div class='hiddendiv' data-bind='visible: subMenuVisible'>
<ul data-bind='foreach: subMenuItems'>
<li data-bind='text: $data'></li>
</ul>
</div>