가 여기 내 단순화 된 상황입니다 : 내 제품 템플릿에서hasMany 관계에서 하나의 레코드를 검색하기위한 Ember 계산 속성?
// model/price-source.js
export default DS.Model.extend({
price: DS.attr('number'),
product: DS.belongsTo('product')
)};
// model/product.js
export default DS.Model.extend({
priceSources: DS.hasMany('price-source')
)};
, 단순히과 같이, 가장 낮은 가격으로 소스를 참조 할 수 있도록하려면 :
// templates/products.hbs
{{#each model as |product|}}
<span>{{product.cheapestSource.price}} €</span>
{{/each}}
가 어떻게 갈 것 cheapestSource 계산 된 속성을 설정하는 방법에 대해? 나는 이런 식으로 뭔가해야 할 것 상상 : 문제는
// model/product.js
cheapestSource: Ember.computed('priceSources', function() {
let sources = this.get('priceSources');
let cheapest = sources.get('firstObject');
// iterate over sources and set cheapest to whichever has the lowest price
return cheapest;
})
, 나는 조금 생각이 어떻게 (떨어져 핸들 {{#each}} 헬퍼를 사용)를 hasMany의 관계를 통해 루프 및 계산 된 속성이 다른 모델의 단일 Ember Data 레코드로 구성 될 수 있는지 여부. 근원지가 @ 어떻게 든 그걸 어떻게 다루는가?
도움과 아이디어 감사합니다.
나는 (https://guides.emberjs.com/v2.11.0/models/relationships/#toc_relationships-as-promises) 가이드 [약속으로 관계]이 글을 읽고 있어요. 우리가하고있는 것처럼 직접 접근 할 수 있습니까? 가능한 한 내 대답을 설명하십시오. 그리고 또한 종속 키'priceSources. @ each.price'가 유용 할 수도 있습니다. – kumkanillam
컨트롤러에서이 작업을 수행 했으므로이 질문을하는 이유를 확인하기 위해 모델 thx에서이 작업을 수행했습니다. –
@ Sedad.Kosovac 불행히도 priceource 객체가 표시되지 않습니다 (Ember Inspector에서). 나는 오류가 발생하지 않습니다. 'return this.get ('priceSources.firstObject')'를 시도해 보았습니다. 어쨌든 소스 정렬이 필요할 것이므로 가장 저렴한 소스를 얻는 가장 좋은 방법은 먼저 정렬 한 다음 sortedSources 계산 된 속성에서 firstObject를 검색하는 것입니다. –