相关疑难解决方法(0)

Ember克隆模型用于新记录

我想要克隆当前正在编辑的模型.

我找到了几种几乎可以工作的方法.但两者都不完美.

1)model.get('data.attributes')获取除camelCase形式的关系之外的所有属性,生成新的记录,但当然缺少关系.

2)model.serialize()生成一个JSON对象,其中包含所有属性,包括关系.但createRecord由于对象不是camelCased(具有下划线的属性first_name不会被处理),因此无法很好地处理它

创建克隆后,我想transaction.createRecord(App.Document, myNewModelObject)更改/设置几个属性,最后commit().任何人都有一些如何做到这一点的见解?

ember.js

15
推荐指数
2
解决办法
8947
查看次数

有没有办法将Ember Object转换为普通的javascript对象?

我找不到任何方法来完成这种转换的任务,因为我找不到任何方法来获取对象的Ember.js属性.Ember.keys仅返回我在create其中设置或使用get的属性,并且声明的属性Ember.extend不会显示在那里.我使用这些属性来设置默认值(例如,[]对于数组属性)

javascript ember.js

12
推荐指数
2
解决办法
1万
查看次数

迭代Ember.js余烬数据记录数组

我整天都在反对这个问题,我觉得我已接近解决方案,但却无法实现.我正在使用Ember.js和Ember-Data以及Fixtures适配器,最终迁移到REST适配器.基本问题是:我有网站和主管,有多对多的关系.我想向用户显示他们现有站点/主管配对的选择框,按站点排序,即:

  • 网站1 - 主管1
  • 网站1 - 主管2
  • 站点2 - 主管1 (记住,多对多)
  • 第2站 - 主管3

我需要将这两个资源争用到一个数组中,我可以将其传递给从Ember.Select继承(或将继承)的视图.目前我正在尝试使用Supervisors控制器上的一个方法,我称之为"平坦",因为它将返回一个表示这些关系的扁平数组.控制器如下所示.我正在使用.find().then()来处理承诺完成后的数据.我得到的数据似乎包含我的所有四个灯具,但是当我尝试它们的任何可枚举方法时(特别是forEach),它的行为就像它只返回了第一个对象一样.我试过迭代数据对象以及data.get('content').我对Ember很新,所以也许我不管怎么说这都是错的,但无论如何这对我来说似乎很奇怪.这是我的代码:

App.SupervisorsController = Ember.ArrayController.extend({
  flat: function(){
    return App.Supervisor.find().then(function(data){
      var c = data.get('content') ;
      console.log(c) ;    // <-- logs an object containing four records,
                          //     with attribute "length" showing 4
                          //     Great! (see below for log output)

      console.log(c[0]) ; // <-- logs first record. Great!
      console.log(c[1]) ; // <-- undefined (?!)
      console.log(c[2]) ; // <-- undefined (?!)
      console.log(c[3]) ; // <-- undefined (?!) …
Run Code Online (Sandbox Code Playgroud)

javascript ember.js ember-data

8
推荐指数
1
解决办法
2万
查看次数

如何克隆Ember数据记录,包括关系?

我已经发现我可以克隆Ember数据记录并复制其属性,但没有克隆任何belongsTo/ hasMany关系.如果我不知道哪种关系可能会脱离现有的关系,我能以某种方式做到这一点吗?

作为参考,这里是我将克隆Ember数据记录的属性:

var attributeKeys = oldModel.get('constructor.attributes.keys.list');
var newRecord = this.get('store').createRecord(oldModel.constructor.typeKey);
newRecord.setProperties(oldModel.getProperties(attributeKeys));
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

7
推荐指数
2
解决办法
4374
查看次数

标签 统计

ember.js ×4

ember-data ×2

javascript ×2