我试图通过jquery ajax发布带有嵌套集合的模型。 然而,骨干方法.toJSON()无法处理嵌套集合。
我找到了一种非常好的方法来修改.toJSON()并在此处递归:
http://www.shesek.info/web-development/recursive-backbone-models-tojson
我正在使用Backbone.js进行Wordpress插件,我有一个模型,我需要发送服务器端,稍后通过curl转发到外部服务器。
问题是:我真的找不到将模板从backbone.js发布到wordpress服务器(与骨干javascript文件相同的服务器)的方法。
我试图像这样覆盖model.save方法:
App.Models.Order = Backbone.Model.extend({
save: function() {
var model = this;
jQuery.ajax({
type: 'post',
dataType: 'json',
url: my_plugin_ajax_namespace.ajaxurl,
data: {
action: 'my_plugin_order_function',
my_plugin_namespace_order: JSON.stringify(model.toJSON())
},
success: function(response) {
console.log('order saved');
console.log(response);
}
}
});
试图接收和解码json模型的my_plugin_order_function看起来像这样:
add_action( 'wp_ajax_my_plugin_order_function', 'my_plugin_order_function' );
add_action( 'wp_ajax_my_plugin_order_function', 'my_plugin_order_function');
function my_plugin_order_function() {
$order = json_decode($_POST['my_plugin_namespace_order']);
/* supposed to do some curl stuff here, but when testing, just return the same model */
$result = $order;
echo json_encode($result);
die();
}
但是我得到了空!
谷歌搜索了很多,但找不到答案。我不能将内容类型设置为json,因为action不是json,对吧?我真的应该像这样使用stringify.JSON吗?覆盖model.save方法是一个糟糕的解决方案吗? 我实际上只是尝试将其中一个数据属性作为json发送。这甚至可能吗?