gpt4 book ai didi

javascript - Ember js 2 统计相关字段(hasMany)

转载 作者:行者123 更新时间:2023-11-27 23:02:35 28 4
gpt4 key购买 nike

我对使用计算属性访问 Controller 中的 ember 模型感到困惑。

我的问题:我正在尝试创建两个属性,第一个属性用于计算 hasMany 字段 marcanet 的相关对象,第二个属性限制该属性的大小仅显示 n > 元素。

第一个场景计算模型上的属性:

import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { hasMany } from 'ember-data/relationships';
import Ember from 'ember';

export default Model.extend({
client: attr('string'),
figure: attr('string'),
marcanet: hasMany('marcanet'),
title: attr('string'),
tm_type: attr('string'),

total: function() {
return this.get('marcanet.length');
}.property('model')
// issue i can't render it on my template as {{model.total}}
// so, I can't understand if it is computed right.
});

第二个风景移动到 Controller 。

这里我只能访问主对象Trademark

import Ember from 'ember';

export default Ember.Controller.extend({
// It works
sliceTrademarks: function() {
return this.get('model').slice(0, 5);
}.property('model'),
// It works
totalTrademarks: function() {
return this.get('model.length');
}.property('model'),

// It throws me an error TypeError: this.get(...) is undefined
sliceMarcanet: function() {
return this.get('model.marcanet').slice(0, 2);
}.property('model'),
// It only give me an empty result
totalMarcanet: function() {
return this.get('model.marcanet.length');
}.property('model')
});

最佳答案

为了解决我的问题,我做了以下操作,

我在模型上使用了计算属性来获取相关对象的大小,

// Thanks for the advice @torazaburo 
relatedTotal: Ember.computed.alias('marcanet.length')

我创建了一个名为 limit 的助手来执行限制任务

// helpers/limit.js
import Ember from 'ember';

export function limit(params, { limitObject, size }) {
return limitObject.slice(0, size);
}
export default Ember.Helper.helper(limit);

我的模板看起来像这样。

// template/index.hbs
{{#each model as |trademark|}}
{{trademark.id}} limit to 2 records<br>
<ul>
{{#each (limit limitObject=trademark.marcanet size=2) as |related|}}
<li>{{related.expediente}}</li>
{{/each}}
</ul>
{{/each}}

注意:它适用于 Ember 2.4.5,请参阅我的 example

关于javascript - Ember js 2 统计相关字段(hasMany),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36926352/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com