Javascript 在应用绑定最佳实践之前,使用json数据初始化Knockout ViewModel

Javascript 在应用绑定最佳实践之前,使用json数据初始化Knockout ViewModel,javascript,knockout.js,Javascript,Knockout.js,我有一个简单的视图模型。但是,在将该模型的绑定应用于视图之前,我需要首先对其进行初始化,或者使用我将通过AJAX从服务器获得的一些数据(JSON格式)设置数组值 我知道我可以创建模型的对象,发出ajax请求,然后初始化模型数组。像这样: function AppViewModel() { var self = this; self.Servers = ko.observableArray([]);//this one 'll be filled by data from serv

我有一个简单的视图模型。但是,在将该模型的绑定应用于视图之前,我需要首先对其进行初始化,或者使用我将通过AJAX从服务器获得的一些数据(JSON格式)设置数组值

我知道我可以创建模型的对象,发出ajax请求,然后初始化模型数组。像这样:

function AppViewModel() {
    var self = this;
    self.Servers = ko.observableArray([]);//this one 'll be filled by data from server
}
var MyViewModel = new AppViewModel();
MyViewModel.Servers = ko.mapping.fromJSON(json_data);//make ajax call to get json_data.
ko.applyBindings(MyViewModel);

这是一个很好的做法还是有更好的做法。

对我来说似乎是一个很好的方法,至少在您提供的上下文中是这样。有一个关于AJAX请求的部分,最后还有一个“高级”部分,可以帮助您跟踪服务器对象的键,以便更容易地向服务器发回更新


另一个好的来源是。它没有使用映射插件,展示了有关通过AJAX请求处理CRUD操作的更基本的内容。

淘汰映射插件似乎即将推出。最初的作者是/曾经是,当时的共识似乎是让用户迁移到更新的版本

我不知道这是否是最佳实践,但我将插话说明如何执行JSON到ViewModel步骤。我的虚拟机相当复杂,所以我将它们保存在不同的js文件中,并将数据传递给构造函数。这使我的页内脚本看起来像这样:

var MyViewModel = new AppViewModel(json_data);
ko.applyBindings(MyViewModel);

使用单行代码使单元测试稍微方便一些(少了一件需要忘记的事情)。

对不起,我没有理解你的意思。你能解释更多或者帮我举个完整的例子吗