Ember.js 余烬数据:如何判断模型';s async:true关系是否在不触发加载的情况下加载?
我需要检查是否加载了异步关系而没有触发加载,这可能吗?目前还没有正式的方法来实现这一点,但您可以非正式地这样做Ember.js 余烬数据:如何判断模型';s async:true关系是否在不触发加载的情况下加载?,ember.js,ember-data,Ember.js,Ember Data,我需要检查是否加载了异步关系而没有触发加载,这可能吗?目前还没有正式的方法来实现这一点,但您可以非正式地这样做 // this will be null if not loaded, and populated if it has at least started loading if(model._relationships.yourRelationshipName) {...} 我正在添加此原因模型。\u关系。yourRelationshipName对我不起作用 model.\u data
// this will be null if not loaded, and populated if it has at least started loading
if(model._relationships.yourRelationshipName) {...}
我正在添加此原因
模型。\u关系。yourRelationshipName
对我不起作用
model.\u data.yourRelationshipName
确实有效,但如果未加载,则该名称也将为空;如果至少已开始加载更新,则该名称将被填充。仍然不在公共API中=(
现在我用这个:
s._data.yourRelationshipName.get('isLoaded')
对于
具有多个关系,在余烬数据1.0.0-beta.12中访问此关系的非公共API是模型。_relationships.tasks.manyArray.get('isLoaded')
对于余烬数据1.13,以下内容将适用于具有多个关系。仍然是一个黑客,但似乎没有公共API
var relationships = model._internalModel._relationships.initializedRelationships;
if (relationships.yourRelationshipName.manyArray.get('isLoaded')) {...}
经过一段时间后,Ember数据2.5得到了。实现的特性之一是ds引用
特性
references API允许与您的关系进行交互。使用它,可以检查您的RelationshipName
是否已加载,而无需触发请求:
model.hasMany('yourRelationshipName').value() !== null;
使用Ember Data 1.13.5,这是唯一适用于我的方法。请注意,出于某种原因,relations.myRelationshipName
有时在加载数组之前对我是未定义的,因此我必须执行if(relations.myRelationshipName&&relations.myRelationshipName.manyArray.get('isLoaded'))
另外,更好的是,我一直在Ember Data 2.12.1中使用这个变量,结果我选择了这个变量:Ember.get(relationshipName.hasload关系)
。我发现\u manyArray
告诉我,在实际从服务器加载关系的情况下,该关系没有加载,但到目前为止还没有通过model.get('relationshipName')访问该关系。
。