我的数据模型是一个样本,对此进行了很多分析。(考虑一个可以多次分析的样本。)
我想在样本模型上创建一个计算属性,该属性基于某些条件来获取其中一项分析,然后可能在我的模板中显示该分析。让我感到困惑的部分是,很多部分不仅是一个属性,而且是一个承诺,因此我不确定如何在计算属性中使用它以及如何在模板中显示它。
我的数据模型如下:
// Define datamodels
var attr = DS.attr;
App.Sample = DS.Model.extend({
note: attr('string'),
region: attr('string'),
timeCollected: attr('string'),
sampleID: attr('string'),
category: attr('string'),
approach: attr('string'),
team: attr('string'),
location: attr('string'),
medium: attr('string'),
instrument: attr('string'),
asset: attr('string'),
mission: attr('string'),
analyses: DS.hasMany('analysis', {async: true}),
mostImportantAnalysis: function(){
var analysesPromise = this.get('analyses');
// NOW WHAT ???
return importantAnalysis.get('result');
}.property('analyses')
});
App.Analysis = DS.Model.extend({
result: attr('string'),
timeAnalyzed: attr('string'),
method: attr('string'),
agent: attr('string'),
sample: DS.belongsTo('sample', { async: true })
});
显然,您需要等待诺言首先解决...以下是最终为我工作的内容:
mostImportantAnalysis: function(){
var result = "";
// Make sure the promise resolves before returning
var analyses = this.get('analyses');
if(!analyses.get("isFulfilled")) {
return "";
}
result = analyses.objectAt(0).get('result');
return result;
}.property('[email protected]')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句