确定是否有多个->;belongsTo项已在Ember.js中创建

确定是否有多个->;belongsTo项已在Ember.js中创建,ember.js,ember-data,has-many,Ember.js,Ember Data,Has Many,我使用的是余烬:1.3.0-beta.2和余烬数据:1.0.0-beta.2 以下是我的设置: 模型 在控制器操作中,我试图将培训资源从用户的培训计划“移动”到培训历史记录。在添加之前,我想确定培训资源是否已经添加到培训历史记录中 我想做一些类似的事情,这是目前的培训计划路线 markCompleted: function(trainingPlanItem) { completed_training_resource_id = trainingPlanItem.get('training_r

我使用的是余烬:1.3.0-beta.2和余烬数据:1.0.0-beta.2

以下是我的设置:

模型 在控制器操作中,我试图将培训资源从用户的培训计划“移动”到培训历史记录。在添加之前,我想确定培训资源是否已经添加到培训历史记录中

我想做一些类似的事情,这是目前的培训计划路线

markCompleted: function(trainingPlanItem) {
  completed_training_resource_id = trainingPlanItem.get('training_resource.id');

  this.controller.get('user_training_histories').then( function(user_training_histories) {
    var already_exists = user_training_histories.any( function(item) {
      var item_id = item.get('training_resource').get('id');
      if (item_id == completed_training_resource_id) {
        return true;
      }
    });

    // ...continues
  });
}
当然,
item.get('training_resource').get('id')返回承诺,因此此
如果(item\u id==completed\u training\u resource\u id)
比较行无法正常工作

有没有办法运行
any
并在其中使用承诺?或者有没有一种方法可以在不加载培训资源的情况下查看
培训资源\u id
?这是属于
关系的
,因此将从服务器获取培训资源id。

我不确定我是否同意这条路线,但你可以从数据obj中获取它

item.get('data.training_resource.id')

我认为您应该能够访问用户培训历史记录中的培训资源id,如下所示:item.get('training\u resource\u id')。不幸的是,该值未定义。。。我应该能够访问该值,因为我的服务器将相关id传递给了Ember。我还没有使用该Ember数据版本。你试过trainingResourceId吗?如果您在模型中定义了该属性,那么模型可能需要它来映射该属性并获得相同的结果。我可以在模型中定义该属性,可能最终会走上这条路线,但我很沮丧,因为Ember已经知道该模型id是什么,并已将其保存在某处。或者,
item.get('data.training\u resource.id')
。如果您对检查
用户\u培训\u历史记录
是否存在重复项有任何更好的建议,请告诉我!也许有比使用
any
更好的方法。
item.get('data.training_resource.id')