Ember计算出的数组属性

时间:2017-06-17 01:10:58

标签: ember.js ember-data

当我在一个包含的数组中存在特定字符串时,我试图在我的模型中包含一个计算标志。

userType: DS.attr(),   // ['Don','Ben','Dec', 'Con']

isDon: Ember.computed('userType', function() {
return (!((this.get('userType')).includes('Don'));
 }).property('userType'),

任何帮助?

2 个答案:

答案 0 :(得分:1)

你的语法错了。看起来你正在混合定义计算属性的两种不同方式,

isDon: Ember.computed('userType', function() {
  return (!((this.get('userType')).includes('Don'));
 }),

如果您想在isDon添加/删除元素时重新计算userType,请将相关密钥视为userType.[]

参见
https://guides.emberjs.com/v2.13.0/object-model/computed-properties/ https://guides.emberjs.com/v2.13.0/object-model/computed-properties-and-aggregate-data/#toc_code-code-vs-code-each-code

答案 1 :(得分:0)

由于某些奇怪的原因,userType未被视为数组,因此我必须创建一个像

这样的计算属性
userRoles: Ember.computed('userType.[]', function () {
return Ember.A(this.get('userType'));
}),
isDon: Ember.computed('userRoles', function () {
return this.get('userRoles').filter((item) => item == 'Don').length > 0;
}),