Javascript 如何收集敲除观测值以放入JSON?
我真的,真的不明白了。我正在尝试使用Knockout开发一个接口,但是尝试使用“toJSON”会让我头疼 问题如下:Javascript 如何收集敲除观测值以放入JSON?,javascript,knockout.js,Javascript,Knockout.js,我真的,真的不明白了。我正在尝试使用Knockout开发一个接口,但是尝试使用“toJSON”会让我头疼 问题如下: 我有一个FormViewModel。此表单包含关于表单本身的逻辑和元数据(可观察) 我有一个FormSection,它只有两个可见项 我有删除,也只有2个观察值 我想将其AJAX到接收JSON对象的PHP文件中,但我不知道如何从这里开始。我只想要一些可观察的东西,不是所有的。我还希望能够从Ajax调用(使用JSON)加载初始状态 以下是我的代码的相关部分: // Th
- 我有一个FormViewModel。此表单包含关于表单本身的逻辑和元数据(可观察)
- 我有一个FormSection,它只有两个可见项
- 我有删除,也只有2个观察值
// This only has some observables
var FormSection = function(number)
{
var self = this;
this.title = ko.observable('Section ' + number);
this.selectedPageStyle = ko.observable();
};
// Only observable / computed
var Deletion = function(page)
{
var self = this;
// reference to a just deleted page, to make 'undeletion' possible
this.page = page;
this.pageTitle = ko.computed(function(){ return self.page.title() });
};
到目前为止还不错,但我的ViewModel有一些可观察的对象,一些功能,等等。这就是我到目前为止得到的:(为了可读性,我删除了函数体)
如果我想保存相关的观测值,我不知道如何继续。例如:我不需要self.selectedPage
。我只用它来分类
- 我在这里使用映射吗李>
- 如何绘制相关的观测值
- 我如何将其放入JSON中
- 如何从服务器接收的JSON“映射回”
viewModel.prototype.toJSON = function(){
var copy = this;
delete copy.//whatever variables you don't want to return to server here
//any other variables you want to not return
return copy;
}
我制作了一把小提琴样品
有关更多信息和示例,请参见要控制在使用ko.toJSON时转换为JSON的内容,您可以通过执行以下操作来重载函数
viewModel.prototype.toJSON = function(){
var copy = this;
delete copy.//whatever variables you don't want to return to server here
//any other variables you want to not return
return copy;
}
我制作了一把小提琴样品
有关更多信息和示例,请参见您可能不希望从视图模型中删除字段,而是希望删除数据的实际副本。。。您缺少了关键部分。这就是它所做的,它从传递给ko.toJSON()的参数的副本中删除字段。请注意,在fiddle中,即使在ko.toJSON()函数中删除了greeter变量,它仍然会显示。请使用ko.mapping.toJS(model,mappingParms)方法,并在映射参数的属性中使用(字符串)数组填充“ignore”属性将对象映射回JS时希望忽略的PropertyNames。您可能不希望从视图模型中删除字段,但希望删除数据的实际副本。。。您缺少了关键部分。这就是它所做的,它从传递给ko.toJSON()的参数的副本中删除字段。请注意,在fiddle中,即使在ko.toJSON()函数中删除了greeter变量,它仍然会显示。请使用ko.mapping.toJS(model,mappingParms)方法,并在映射参数的属性中,使用将对象映射回JS时希望忽略的(字符串)PropertyNames数组填充“ignore”属性。