Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 余烬数据:如何判断模型';s async:true关系是否在不触发加载的情况下加载?_Ember.js_Ember Data - Fatal编程技术网

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')访问该关系。