使用动态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.saveinstanceUrl会在请求有效负载中添加一个额外的属性

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作为模型属性?

尼科斯

对于该方法签名模型构造函数/初始化方法

构造函数/初始化新模型([attributes],[options])

传递的第一个对象将添加为属性。您传入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为实例的成员,使用全局变量(甚至仅限于您的模块)也必然会导致麻烦

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

骨干模型初始化

来自分类Dev

骨干网在初始化时看不到模型更改。正常吗

来自分类Dev

骨干模型初始化函数

来自分类Dev

初始化时如何动态设置Vuex中的初始状态(使用“if”)?

来自分类Dev

Backbone.js:使用动态名称初始化模型

来自分类Dev

初始化时如何基于模型解析进行POST调用

来自分类Dev

python 3.8-在初始化时动态设置类的属性

来自分类Dev

动态创建类时初始化时出错

来自分类Dev

要释放动态数组初始化时程序崩溃

来自分类Dev

如何在初始化时使用可变参数来在初始化时包括不同数量的对象?

来自分类Dev

为什么初始化时不使用setter方法?

来自分类Dev

在类初始化时使用数组中的变量定义函数

来自分类Dev

创建属性并使用数组元素初始化时发生TypeError

来自分类Dev

警告:此函数未初始化时使用'fp'[-Wuninitialized]

来自分类Dev

为什么在初始化时使用子类的实现?

来自分类Dev

Tensorflow 模型 lm_1b 模型初始化时出现分段错误

来自分类Dev

在初始化时填充defaultdict

来自分类Dev

WKWebView在初始化时崩溃

来自分类Dev

PreferenceFragmentCompat在初始化时崩溃

来自分类Dev

在初始化时填充defaultdict

来自分类Dev

动态更新骨干模型属性

来自分类Dev

在服务器初始化时执行模型操作(仅一次)

来自分类Dev

动态使用对象初始化器

来自分类Dev

Django:使用来自另一个模型的值填充模型的字段(在初始化和保存时)

来自分类Dev

在对象初始化时在ruby中动态构建访问器

来自分类Dev

如何在angular的chart.js初始化时动态地应用数据?

来自分类Dev

在对象初始化时在ruby中动态构建访问器

来自分类Dev

定制骨干模型以使用/ documents / 6 / editor之类的URL

来自分类Dev

在初始化时从单个属性初始化多个属性

Related 相关文章

  1. 1

    骨干模型初始化

  2. 2

    骨干网在初始化时看不到模型更改。正常吗

  3. 3

    骨干模型初始化函数

  4. 4

    初始化时如何动态设置Vuex中的初始状态(使用“if”)?

  5. 5

    Backbone.js:使用动态名称初始化模型

  6. 6

    初始化时如何基于模型解析进行POST调用

  7. 7

    python 3.8-在初始化时动态设置类的属性

  8. 8

    动态创建类时初始化时出错

  9. 9

    要释放动态数组初始化时程序崩溃

  10. 10

    如何在初始化时使用可变参数来在初始化时包括不同数量的对象?

  11. 11

    为什么初始化时不使用setter方法?

  12. 12

    在类初始化时使用数组中的变量定义函数

  13. 13

    创建属性并使用数组元素初始化时发生TypeError

  14. 14

    警告:此函数未初始化时使用'fp'[-Wuninitialized]

  15. 15

    为什么在初始化时使用子类的实现?

  16. 16

    Tensorflow 模型 lm_1b 模型初始化时出现分段错误

  17. 17

    在初始化时填充defaultdict

  18. 18

    WKWebView在初始化时崩溃

  19. 19

    PreferenceFragmentCompat在初始化时崩溃

  20. 20

    在初始化时填充defaultdict

  21. 21

    动态更新骨干模型属性

  22. 22

    在服务器初始化时执行模型操作(仅一次)

  23. 23

    动态使用对象初始化器

  24. 24

    Django:使用来自另一个模型的值填充模型的字段(在初始化和保存时)

  25. 25

    在对象初始化时在ruby中动态构建访问器

  26. 26

    如何在angular的chart.js初始化时动态地应用数据?

  27. 27

    在对象初始化时在ruby中动态构建访问器

  28. 28

    定制骨干模型以使用/ documents / 6 / editor之类的URL

  29. 29

    在初始化时从单个属性初始化多个属性

热门标签

归档