淘汰赛 - 我的绑定是否有更好的方法

时间:2015-06-01 15:46:00

标签: javascript knockout.js

请一些建议我在这里设置了一个小提琴:

http://jsfiddle.net/tonymaloney1971/cagnL1o1/6/

    var data = [{ PostCodeStart: "", PostCodeEnd: "", Mileage: "", Notes: "" }];//[{ PostCodeStart: "PO200QW", PostCodeEnd: "SE1 9FD", Mileage: "127", Notes:"Hello World" }];

    var viewModel = {
        journeyList: ko.observableArray(data),
        journeyListNotBound: [],
        add: function (data) {
            if (data.PostCodeStart === "" || data.PostCodeEnd === "" || data.Mileage === "") {
                alert("empty field");
            }
            else {
//Do I need this journeyListNotBound
                viewModel.journeyListNotBound.push({ PostCodeStart: data.PostCodeStart, PostCodeEnd: data.PostCodeEnd, Mileage: data.Mileage, Notes: data.Notes });
                viewModel.journeyList.push({ PostCodeStart: postCodeStart, PostCodeEnd: postCodeEnd, Mileage: mileage, Notes: notes });
            }
        },

        remove: function (data) {
            viewModel.journeyList.remove(data);
        }
    };

现在,每次用户按下+按钮我都希望有Start Post代码,End Post代码和Mileage,并且所有注释都以空字符串开头。我已经实现了这个(在ROY的帮助下),但是使用了一个普通的Javascript数组(journeyListNotBound),所以我们有一个KO数组和Javascript数组,我们只能用一个KO数组来做这个吗?

由于

1 个答案:

答案 0 :(得分:1)

查看http://jsfiddle.net/kjv07wrg/是否更像您想要的。

我创建了一个自定义类JourneyStep,并为每个新步骤分配了一个具有空属性的对象。此外,使用viewModel调用现在是函数的new viewModel()。我将Plus按钮更改为仅在UI中出现一次,并且每一步都保留其删除按钮。