Ember.js 余烬:计算对象中的键数?
我的数据大致如下:Ember.js 余烬:计算对象中的键数?,ember.js,Ember.js,我的数据大致如下: "id": "1", "slug": "WD", "name": { "en": "Working Draft", "de": "Arbeitsentwurf", "fr": "Version de travail", "ja": "草案", "ru": "Рабочий черновик" } 我将名称对象传递给一个组件: {{title-name name=model.name lang='en'}} 在组件模板中,我想输出翻译
"id": "1",
"slug": "WD",
"name": {
"en": "Working Draft",
"de": "Arbeitsentwurf",
"fr": "Version de travail",
"ja": "草案",
"ru": "Рабочий черновик"
}
我将名称
对象传递给一个组件:
{{title-name name=model.name lang='en'}}
在组件模板中,我想输出翻译的数量
<p>Translated {{translationCount}} times.</p>
更明确一点似乎有用:
export default Ember.Component.extend({
translationCount: Ember.computed('name', function() {
return Object.keys('name').length;
})
});
请查看此文件以了解其实现
应用程序模板
<h1>Welcome to the {{appName}}</h1>
{{title-name name=data.name lang='en'}}
{{outlet}}
title name.js组件
import Ember from 'ember';
var { computed, get } = Ember;
export default Ember.Component.extend({
translationCount: computed('name', function() {
var name = get(this, 'name');
return Object.keys(name).length;
})
});
标题名称.hbs组件模板
{{yield}}
{{translationCount}}
请记住,如果对象的关键点在不更改对象的情况下更改,则不会更新此选项。因此,如果您执行了
this.get('name')['newKey']='value'
,则计数不会更改。@GJK提到,如果对象的键更改,我的解决方案不会更新,如果键更改,此解决方案会更新吗?
import Ember from 'ember';
var { computed, get } = Ember;
export default Ember.Component.extend({
translationCount: computed('name', function() {
var name = get(this, 'name');
return Object.keys(name).length;
})
});
{{yield}}
{{translationCount}}