【问题标题】:Convert JSON object to Ember data Model将 JSON 对象转换为 Ember 数据模型
【发布时间】:2014-02-03 14:37:49
【问题描述】:

我为其中一个项目做了常见的模态弹出窗口。 对于该模式弹出窗口,我将数据模型(例如薪水模型)作为参数传递。 有时我们需要将模型作为对象传递(即,我们传递薪金对象而不是薪金模型)。基于此,我正在检查参数是 ember 的实例还是对象。

我的问题是,我们可以将对象(比如薪水对象)转换为 ember 数据模型(比如薪水模型)吗?

例如:- 我有一个像下面这样的模型

App.Salary=DS.Model.extend({
emp_name:DS.attr('string'),
emp_salary:DS.attr('string')
});

Json object
{salary:{id:1,emp_name:'Raju',emp_salary:'5000'}}

由于某些原因, 我将 ember 工资模型作为参数传递/薪金对象(JSON)作为参数传递

两者都有相同的数据,但薪水模型将是 ember 实例。如果我更改节点中的某些内容,它将反映在关联的模型中。但是对于薪水对象,如果在节点中改变一些东西,它不会反映在关联的模型中。

我知道薪水对象与 ember-data 模型无关,这就是为什么它不会与薪水相关模型反映。

那么有什么方法可以将该薪金对象转换为薪金模型。因此,如果我更改节点中的某些内容,它将反映关联的模型。

【问题讨论】:

  • 您介意设置一个更具体的例子吗,如果没有更多细节,很难给出一个好的答案。就目前而言,确保您可以将 pojo 侧载到存储中并创建 ember 数据模型。 (供将来参考,emberjs.jsbin.com 是创建示例的好地方)
  • @kingpin2k,我编辑了我的问题

标签: ember.js ember-data


【解决方案1】:

我们可以使用

this.store.push(this.store.normalize('salary', {id:1,emp_name:'Raju',emp_salary:'5000'}));
【解决方案2】:

尝试将该 JSON 对象设置为 Ember 对象:

Em.Object.create({salary:{id:1,emp_name:'Raju',emp_salary:'5000'}})

【讨论】:

    【解决方案3】:

    对我来说,这成功了:

    this.get('store').createRecord('model', {payload})
    

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 2010-12-13
      相关资源
      最近更新 更多