在应用绑定最佳实践之前,使用json数据初始化Knockout ViewModel
initialize Knockout ViewModel with json data before apply binding best practices
我有一个简单的knockoutjs ViewModel。但在将该模型的绑定应用到视图之前,我需要首先初始化它,或者使用一些数据(JSON格式)设置数组值,这些数据将通过AJAX从服务器获得。
我知道我可以创建我的模型的对象,发出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操作的更基本的内容。
Knockout Mapping插件似乎正在退出。最初的作者正在寻找维护人员,在这一点上,似乎达成了共识,让用户迁移到更新的Knockout ViewModel插件。
我不知道这是否是最佳实践,但我会介绍一下我是如何完成JSON到ViewModel的步骤的。我的虚拟机相当复杂,所以我将它们保存在不同的js文件中,并将数据传递给构造函数。这使得我的页面内脚本看起来像这样:
var MyViewModel = new AppViewModel(json_data);
ko.applyBindings(MyViewModel);
有了单行使它在单元测试中稍微方便一些(少了一件需要忘记的事情)。
相关文章:
- 如何使用JSON使用不同颜色的圆圈
- 从 JSON 使用 Google Charts API 创建饼图
- 如何循环使用JSON(使用AngularJS)并将结果放入Javascript数组中
- Json使用selfhost c#输出,并使用javascript读取响应
- 尝试跨站点 JSON 使用 JS(Angular)请求 API
- Angular JSON - 使用“跟踪依据”表达式
- 对要在 localStorage 中使用的嵌套 JSON 使用 stringify
- WCF服务JSON使用ASP.NET发布数据
- 如何在ajax调用中忽略(标签、脚本).对于json使用
- 如何从json使用正则表达式(regex)在php中的内容
- 希望对JSON使用IF语句
- JSON使用命名索引访问数组对象
- JSON使用javascript在循环中插入值
- JSON使用JavaScript读取本地文件(类似的问题Stack overflow没有帮助)
- 我可以使用JavaScript JSON.使用外部数组进行解析
- 如何对典型的JSON使用ng-repeat
- JSON.使用reviver函数进行解析
- JSON.使用嵌套对象解析JSON
- Javascript - Json使用编码器从表中获取值
- JSON 使用 AJAX 获取表单值