在淘汰赛中一次显示数据,一个对象元素

时间:2013-05-29 15:44:01

标签: javascript knockout.js

在基本表结构中,我希望能够一次一个地显示一组对象中的一组数据。单击按钮或类似的东西将显示数组中的下一个对象。

诀窍是,我不想使用可见标记,只是隐藏额外的数据。

2 个答案:

答案 0 :(得分:2)

只需指定一个属性来指示您要显示的当前元素以及observableArray中该元素的索引..我已经进行了简单的演示检查。

<div id="persons"> <span data-bind="text: selectedPerson().name"></span>
    <br/>
    <button data-bind="click: showNext" id="btnShowNext">Show Next</button>
    <br/>
</div>

//这里是JS代码

function ViewModel() {
    people = ko.observableArray([{
        name: "Bungle"
    }, {
        name: "George"
    }, {
        name: "Zippy"
    }]);
    showNext = function (person) {
        selectedIndex(selectedIndex() + 1);
    };
    selectedIndex = ko.observable(0);
    selectedPerson = ko.computed(function () {
        return people()[selectedIndex()];
    });
}
ko.applyBindings(new ViewModel());

请检查此 jsfiddle

答案 1 :(得分:1)

为单个对象创建observable属性,然后在单击next时将该属性设置为其他对象,UI将更新。