Backbone.js 从服务器创建模型
我找到了一个如何更新模型的示例。示例如下所示:Backbone.js 从服务器创建模型,backbone.js,asynchronous,Backbone.js,Asynchronous,我找到了一个如何更新模型的示例。示例如下所示: var Sidebar = Backbone.Model.extend({ param:'sasha', time:(new Date()).getTime() }); window.sidebar = new Sidebar; sidebar.set("name","sasha"); sidebar.set("time",(new Date()).getTime()) Bac
var Sidebar = Backbone.Model.extend({
param:'sasha',
time:(new Date()).getTime()
});
window.sidebar = new Sidebar;
sidebar.set("name","sasha");
sidebar.set("time",(new Date()).getTime())
Backbone.sync("update",sidebar,{
url:'1.php',
success:function(data){
debugger
console.log('success');
sidebar.set('rand',data.b)
},
error:function(){
console.log('error')
}
})
1.php
$time = rand();
$arr = array('a' => 1, 'b' => $time);
echo json_encode($arr);
我找不到查询“create”的示例。
是否帮助从服务器创建新一代模型
我读到一个描述这个过程的属性是一个属性“id”。。。我想看看。您并没有真正按照设计使用主干:p 首先要认识到的是,当您执行
Model.extend
时,您正在为模型创建构造函数
/prototype/blueprint,而不是实际的实例
新模型
它包含对模型的所有实例都是元的方法和属性。“元”属性的一个例子是:
:您将点击以对其执行操作的url李>url
:用于“展开”响应的函数(例如:如果它具有外部“数据”包装器)parse
new
创建新的模型
var Sidebar = Backbone.Model.extend({
url:'1.php'
});
var sidebar = new Sidebar({
param:'sasha',
time:(new Date()).getTime()
});
主干网的更新
和创建
之间的区别在于ID元素(主键)的存在。这是您在数据库中识别它的方式。您可以使用.save()
创建模型和更新模型
//Will create the model on the server by doing a `POST` to the `url`
sidebar.save();
这将有效地做到:
POST 1.php
{
"param": "Sasha",
"date": 12312311228
}
服务器用模型副本和标识它的ID(来自数据库的ID)进行响应
主干将获取ID并将其保存到模型。从那时起,save
将转到UPDATE
,而不是POST
因此:
{
"id": 123,
"param": "Sasha",
"date": 12312311228
}
model.save({new:'attribute'});
UPDATE 1.php
{
"id": 123,
"new": "attribute",
"param": "Sasha",
"date": 12312311228
}