如何使用KnockoutJS删除不需要的JSON节点
我在发布json数据时遇到问题,因为我不知道如何在ajax回发过程中删除一个json节点(在本例中为ServiceOptions) 首先,这是我的HTML:如何使用KnockoutJS删除不需要的JSON节点,json,knockout.js,Json,Knockout.js,我在发布json数据时遇到问题,因为我不知道如何在ajax回发过程中删除一个json节点(在本例中为ServiceOptions) 首先,这是我的HTML: <h3>Company Profile:</h3> <ol style="list-style:none;"> <li> Company Name<br /> <input id="CompanyName" type="text" da
<h3>Company Profile:</h3>
<ol style="list-style:none;">
<li>
Company Name<br />
<input id="CompanyName" type="text" data-bind="value:CompanyName" />
</li>
<li>
Service Type<br />
<select id="ServiceType" data-bind="options:ServiceOptions,optionsText:'text',optionsValue:'value',value:ServiceType,optionsCaption:'Choose....'">
</select>
</li>
<li>
Street<br />
<input id="Street1" type="text" data-bind="value:Street1" /><br />
<input id="Street2" type="text" data-bind="value:Street2" /><br />
<input id="Street3" type="text" data-bind="value:Street3" />
</li>
<li>
Suburb<br />
<input id="Suburb" type="text" data-bind="value:Suburb" />
</li>
<li>
Post Code<br />
<input id="PostCode" type="text" data-bind="value:PostCode" />
</li>
<li>
State<br />
<input id="State" type="text" data-bind="value:State" />
<li>
Telephone<br />
<input id="Telephone" type="text" data-bind="value:Telephone" />
</li>
<li>
Fax<br />
<input id="Fax" type="text" data-bind="value:Fax" />
</li>
<li>
Status <input id="IsActive" type="checkbox" data-bind="checked: IsActive" />
</li>
<li>
<button data-bind="click:Update_Click">Update</button>
<button data-bind="click:Delete_Click">Delete</button>
</li>
</ol>
当我点击更新按钮时,我得到
“公司名称”:“服务选项”:[{“值”:0,“文本”:“干洗”},{“值”:1,“文本”:“遛狗”}],“街道1”:“街道2”:“街道3”:“郊区”:“邮政编码”:“州”:“电话”:“传真”:“IsActive”:false}
正如您在上面的JSON结果中所看到的,我仍然得到ServiceOptions
知道如何修复它吗?
ko.toJSON
在内部使用JSON.stringify
可以指定。在这个replacer函数中,您需要为不希望包含在最终JSON中的键(属性名)返回undefined
:
this.Update_Click = function () {
alert(ko.toJSON(self, function(key, value) {
if (key == "ServiceOptions")
return undefined;
return value;
}));
};
如果ServiceOptions不是您模型的一部分-为什么它是您模型的一部分?您可以将其放入另一个对象中。这不是从代码中删除self.ServiceOptions的问题吗?Robert,我需要服务选项来填充html select对象。这在希望输出或保存不一定需要的数据(如下拉项)时非常方便-谢谢!
this.Update_Click = function () {
alert(ko.toJSON(self, function(key, value) {
if (key == "ServiceOptions")
return undefined;
return value;
}));
};