gpt4 book ai didi

javascript - 使用 knockout 合并将历史状态对象与构造函数合并

转载 作者:行者123 更新时间:2023-11-27 23:10:00 25 4
gpt4 key购买 nike

我在将历史状态对象与我拥有的构造函数合并时遇到问题,该构造函数保存在相同的历史状态中以供以后使用。

插件示例页面:https://rawgit.com/grofit/knockout.merge/master/example.html

使用 knockout 合并插件页面中显示的示例,该页面使用像我自己的构造函数,我已经构建了我的代码,但不幸的是,由于我对 knockout 相对较新,所以我遇到了问题。

这是 knockout 合并示例中显示的一段代码

function Person()
{
this.Firstname = ko.observable();
this.Surname = ko.observable();
}

function ViewModel()
{
this.SimpleExampleModel = new Person();

this.MergeSimpleExample = function() {
var personJson = { Firstname: "James", Surname: "Bond" };
ko.merge.fromJS(this.SimpleExampleModel, personJson);
};
};

ko.applyBindings(new ViewModel());

现在我的代码:

(推送到历史记录的对象是构造函数的可观察对象作为对象)

构造函数:

    var searchTerm = function () {
this.MinPrice = ko.observable();
};


lbx.vm = {
term: new searchTerm(),
injectHistory: function () {

// ko.merge.fromJS(this.term, history.state); Doesn't work
// var json = ko.toJSON(history.state) - Doesn't work
//var json = JSON.Parse(history.state) - Doesn't work
//var json = { MinPrice: 222 }; Works
var json = { "MinPrice": 222 }; // Works

ko.merge.fromJS(this.term, json);

console.log("injected");
}

};
正如你所看到的,根据我的测试,每当我尝试将 JS 对象转换为 json 时,它都不起作用,但如果我手动构建 json,它就会起作用。

摆弄我的问题:https://jsfiddle.net/Badzpeed/05zdLgxh/1/

正如您在弹出状态时在 fiddle 中看到的那样,没有任何反应,可观察值始终相同,并且不会引发任何错误。

如有任何帮助,我们将不胜感激!

提前谢谢您

最佳答案

终于解决了我的问题,事实证明我忘记将构造函数添加到合并中,并且我还对将对象传递到我的历史状态的函数进行了两次调用,从而形成了两个。

通过更改这两件事解决了问题。

感谢您的宝贵时间!

关于javascript - 使用 knockout 合并将历史状态对象与构造函数合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36282069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com