我正在尝试让参与者了解与扫描相关的一些目标受众,当我查看特定扫描时,它显示我的参与者计数与所有扫描的目标受众相关而不是参与者计数与特定扫描的目标受众有关。
我有以下型号:
scan.js型号:
import DS from 'ember-data';
var scanModel = DS.Model.extend({
targetAudiences: DS.hasMany('targetAudiences', {async: true}),
scanParticipants: DS.hasMany('scanParticipants', {async: true}),
participants: Ember.computed('scanParticipants.@each.participant', function () {
return this.get('scanParticipants').then(function (scanParticipants) {
return scanParticipants.mapBy('participant');
})
}),
participantsCount: Ember.computed('scanParticipants.[]', function () {
return this.get('scanParticipants.length');
}),
participantsCountFinished: Ember.computed('scanParticipants.[]', function () {
return this.get('scanParticipants').filterBy('finished', true).get('length');
}),
});
export default scanModel;
target-audience.js模型:
import DS from 'ember-data';
var targetAudienceModel = DS.Model.extend({
scanParticipants: DS.hasMany('scanParticipants', {async: true}),
participants: Ember.computed('scanParticipants.@each.participant', function () {
return this.get('scanParticipants').then(function (scanParticipants) {
return scanParticipants.mapBy('participant');
})
}),
participantsCount: Ember.computed('scanParticipants.[]', function () {
return this.get('scanParticipants.length');
}),
participantsCountFinished: Ember.computed('scanParticipants.[]', function () {
return this.get('scanParticipants').filterBy('finished', true).get('length');
}),
});
export default targetAudienceModel;
scan-participant.js模型:
从'ember-data'导入DS;
var scanParticipantModel = DS.Model.extend({
finished: DS.attr('boolean'),
scan: DS.belongsTo('scan', {async: true}),
participant: DS.belongsTo('participant', {async: true}),
targetAudience: DS.belongsTo('targetAudience', {async: true})
});
export default scanParticipantModel;
如果我要去一个特定的scangroup,它会向我显示该scangroup的扫描列表,这是很好的例子:
url scangroup/1
:
现在,当我要进行特定扫描时,我想显示属于扫描的每个targetAudience的统计信息,我选择示例:
url scangroup/1/scan/2
:
但是当我查看特定扫描(2)时,我得到的统计数据是:
如果我在扫描2时看到它只显示与该目标扫描2相关的参与者数量,我怎么能成为可能呢?
我无法弄明白,我已经3天尝试了一切,但似乎不可能。
我正在使用:
提前致谢!
请问,
帕斯卡
答案 0 :(得分:0)
我已经解决了问题!!
我正在推动组件scan-stats-target
中的每个targetAudience,
在组件中我创建了计算属性participantsCount
:
participantsCount: Ember.computed('targetAudience', function () {
let scanId = this.get('scan.id');
let scanParticipants = this.get('targetAudience.scanParticipants');
return scanParticipants.filterBy('scan.id', scanId).get('length');
})
这么容易,我想我已经努力了,我再也不能想到了简单= x!
有人不理解它只是质问我,我试着回答它!