如何获取某个对象的初始默认值

时间:2014-02-01 06:24:34

标签: knockout.js knockout-2.0

您好我已经将我的模型绑定如下,这就像魅力一样,但有一种情况,当我点击取消按钮时我想要恢复默认选项

This is the scenario where I want default options

var initialData;
$.getJSON("/ASPNET/Questionnaire/EditQuestionJSON/",
    function (d) {
        ko.applyBindings(new QuestionsModel(d));
    }
);

var QuestionsModel = function (Questions) {
    var self = this;
    self.Questions = ko.observableArray(ko.utils.arrayMap(Questions, function (q) {
        return { QuestionID: q.QuestionID, EnQuestion: q.EnQuestion, FrQuestion: q.FrQuestion, Options: ko.observableArray(q.Options) };
    }));

    self.addQuestion = function () {
        self.Questions.push({
            QuestionID: "",
            EnQuestion: "",
            FrQuestion: "",
            Options: ko.observableArray()
        });
    };

    self.removeQuestion = function (question) {
        self.Questions.remove(question);
    };

    self.addOption = function (question) {
        question.Options.push({
            QuestionOption: ""
        });
    };

    self.removeOption = function (question) {
        $.each(self.Questions(), function () { this.Options.remove(question) })
    };

    self.save = function () {
        //self.lastSavedJson(JSON.stringify(ko.toJS(self.Questions), null, 2));
        console.log(ko.toJS(self.Questions));
    };

    self.lastSavedJson = ko.observable("")
};

第二个问题我是:当我点击每个问题的编辑按钮时,第一次显示后

未捕获错误:您无法多次将绑定应用于同一元素。

当我尝试使用ko.cleanNode

解决此问题时

另一个问题是,下次我的每个选项都会出现4次,下次没有任何事情发生

您是否收到了问题,或者我需要为其添加更多详细信息?

0 个答案:

没有答案