【问题标题】:Ember computed property from array来自数组的 Ember 计算属性
【发布时间】:2017-06-17 01:10:57
【问题描述】:

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

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

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

有什么帮助吗?

【问题讨论】:

  • .property() 让我想知道您是否正在查看旧文档。你是哪个版本的?

标签: ember.js ember-data


【解决方案1】:

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

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

如果您想在每次从userType 添加/删除元素时重新计算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

【讨论】:

    【解决方案2】:

    由于某种奇怪的原因,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;
    }),
    

    【讨论】:

      猜你喜欢
      • 2016-01-19
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      相关资源
      最近更新 更多