在1个列表和1个元素之间交换数据信息

时间:2016-02-28 02:48:08

标签: javascript knockout.js

我有两个(或n个)主要部分,每个部分在单击时显示一个包含6个子部分的列表,一个显示在主要内容区域中,另外5个部分仍然显示在底部。

当你点击其他5个中的一个时,应该交换内容(图像+标题),主要内容部分现在应该具有来自点击链接的数据和链接内容中的信息。

因此小节列表应该能够改变位置。

我是knockout.js中的新手,我想在某些方面可以实现这一点,但是我想在最佳实践中指出正确的方向,所以我可以从一开始就有一个好的代码项目

1 个答案:

答案 0 :(得分:2)

查看foreachtemplate绑定的文档会很有帮助。

我会创建一个可以重用于n个主要部分的函数。这个函数有一个ko.observableArray,它包含各个部分的函数。当您单击某个部分时,它会将ko.observable的值设置为该部分。

    function MainSection() {
    var self = this;
    self.selectedSection = ko.observable();
    self.sections = ko.observableArray(
        [
            new Section("Some Data"),
            new Section("Some Data"),
            new Section("Some Data"),
            new Section("Some Data"),
            new Section("Some Data"),
            new Section("Some Data")
        ]);
    self.selectSection = function(item) { //where item is a Section
        self.selectedSection(item);       //passed from the click binding
    };
}