Ember 从数组计算 属性
Ember computed property from array
当包含的数组中存在特定字符串时,我试图在我的模型中包含一个计算标志。
userType: DS.attr(), // ['Don','Ben','Dec', 'Con']
isDon: Ember.computed('userType', function() {
return (!((this.get('userType')).includes('Don'));
}).property('userType'),
有什么帮助吗?
你的语法有误。看起来您正在混合定义计算属性的两种不同方式,
isDon: Ember.computed('userType', function() {
return (!((this.get('userType')).includes('Don'));
}),
如果您想要在 userType
中的 add/remove 个元素时重新计算 isDon
,则将依赖键视为 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
出于某些奇怪的原因,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;
}),
当包含的数组中存在特定字符串时,我试图在我的模型中包含一个计算标志。
userType: DS.attr(), // ['Don','Ben','Dec', 'Con']
isDon: Ember.computed('userType', function() {
return (!((this.get('userType')).includes('Don'));
}).property('userType'),
有什么帮助吗?
你的语法有误。看起来您正在混合定义计算属性的两种不同方式,
isDon: Ember.computed('userType', function() {
return (!((this.get('userType')).includes('Don'));
}),
如果您想要在 userType
中的 add/remove 个元素时重新计算 isDon
,则将依赖键视为 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
出于某些奇怪的原因,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;
}),