Javascript 计算属性don';t观察数组中对象的变化

Javascript 计算属性don';t观察数组中对象的变化,javascript,ember.js,Javascript,Ember.js,当我更改语言时,我的组件不会观察对象数组中的更改。它只在更改路线后工作,但它应该立即更改所有内容,而无需重新加载页面 组件代码: columnsToEdit: Ember.computed('i18n.locale', function() { let i18n = this.get('i18n'); return Ember.A([ { "propertyName": "name", "title": i18n.t('Name')

当我更改语言时,我的组件不会观察对象数组中的更改。它只在更改路线后工作,但它应该立即更改所有内容,而无需重新加载页面

组件代码:

  columnsToEdit: Ember.computed('i18n.locale', function() {
    let i18n = this.get('i18n');
    return Ember.A([
      {
        "propertyName": "name",
        "title": i18n.t('Name')
      },
      {
        "propertyName": "phone",
        "title": i18n.t('Name'),        
      },
    ]);
  }),

  columns: Ember.computed.map('columnsToEdit.[]', function(column){
    return column;
  }),
我认为,它应该是有效的。“ColumnsToEdit”在“ColumnsToEdit”中查找i18n.locale的更改。下一个“columns”查找“columnsToEdit”中的更改。当我在“columns”中调用“console.log”时,它会返回预期的结果,但在我看来,在单击“language switch”之后什么也没有发生。那么为什么我的组件没有在视图中更改“标题”?任何帮助都将不胜感激。

您能试试这个吗:

currentLocale: Ember.computed.readOnly('i18n.locale'),
columnsToEdit: Ember.computed('currentLocale', function() {
    let i18n = this.get('i18n');
    return Ember.A([
      {
        "propertyName": "name",
        "title": i18n.t('Name')
      },
      {
        "propertyName": "phone",
        "title": i18n.t('Name'),        
      },
    ]);
  }),

  columns: Ember.computed.map('columnsToEdit.[]', function(column){
    return column;
  }),
显示更多代码

但是,您需要了解,您的属性
始终与
列编辑
完全相同。我不确定您想做什么,但您目前没有在
列中执行任何操作