使用动态 URL 初始化时保存主干模型
Backbone model saving while initialized with dynamic url
我有一个骨干模型,如下所示
define([], function(){
var instaceUrl;
var PatientModel = Backbone.Model.extend({
url: function() {
return instanceUrl;
},
initialize: function(options) {
instanceUrl = options.instanceUrl;
},
defaults: {
"person": "",
"identifiers":""
}
});
console.log('Patient model');
return PatientModel;
});
当我尝试保存患者模型patientModel.save
时,请求有效负载中添加了一个额外的instanceUrl
属性
var patientModel = new PatientModel({instanceUrl: '/patient'});
...
...
patientModel.set("identifiers", identifiers);
patientModel.set("person", uuid);
patientDetails = patientModel.toJSON();
patientModel.save(patientDetails, {
beforeSend : sendAuthentication,
success : function(model, response, options) {
uuid = response.uuid;
},
error : function() {
alert('failed');
}
});
模型发送以下有效负载
{
"instanceUrl": "/patient", // why is it added ?
"person": "c014068c-824d-4346-84f0-895eb3ec6af7",
"identifiers": [
{
"preferred": true,
"location": "f15bc055-765a-4996-a207-ec4945972f33",
"identifier": "saks9639",
"identifierType": "866aedab-8a37-4b15-95d3-2b775fc0caac"
}
]
}
成功调用 REST API 所需的有效负载为
{
"person": "c014068c-824d-4346-84f0-895eb3ec6af7",
"identifiers": [
{
"preferred": true,
"location": "f15bc055-765a-4996-a207-ec4945972f33",
"identifier": "saks9639",
"identifierType": "866aedab-8a37-4b15-95d3-2b775fc0caac"
}
]
}
如何避免patientModel
考虑instanceUrl
作为模型属性?
模型构造函数/初始化方法的方法签名为
构造函数/初始化新模型([属性],[选项])
其中传递的第一个对象将添加为属性。您在第一个哈希中传递instanceUrl
,它被视为一个属性。请参阅此小提琴的演示:http://jsfiddle.net/nikoshr/GADW7/
使用第二个对象声明选项1 :
var PatientModel = Backbone.Model.extend({
url: function() {
return this.instanceUrl;
},
initialize: function(attrs, options) {
this.instanceUrl = options.instanceUrl;
},
defaults: {
"person": "",
"identifiers":""
}
});
你会把它实例化为
var patientModel = new PatientModel({}, {instanceUrl: '/patient'});
还有一个演示 http://jsfiddle.net/nikoshr/GADW7/1/
1 : 请注意,我将instanceUrl
设置为实例的成员,使用全局变量,即使仅限于您的模块,也必然会导致困扰
相关文章:
- 主干:如何保存模型集合中模型的属性更改
- 保存模型返回错误
- 猫鼬数据不会保存模型的新实例
- 主干:在单个请求中批量保存模型
- 如何使用轨迹选项进行选择,以角度保存模型中的选定对象
- JavascriptMVC - 保存模型时的验证错误
- 主干网.js - 在不保存模型的情况下发出 POST 请求
- EmberJS无法调用方法'查找'保存模型时未定义的
- 保存模型后无法重新渲染主干视图
- Django通过JS而不是表单提交来保存模型
- 在使用具有隔离作用域的指令时保存模型值不起作用
- Backbone.js保存模型don't在android 2.x上引起ajax PUT请求
- 保存模型时,只将所需的插件加载到架构中
- 保存模型记录不起作用(Spine)
- 保存模型时更新主干视图
- 从three.js中保存模型
- 余烬:下划线模型名称在JSON中保存模型
- 在AngularJS中保存模型的静态副本
- 主干保存模型问题
- Backbone.js保存模型的属性是其他模型的数组