当我更改语言时,我的组件不会观察我的对象数组中的更改。它仅在更改路线后才有效,但它应该立即更改所有内容,而无需重新加载页面。
组件代码:
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"在" columsToEdit"中查找来自i18n.locale的更改。下一个"列"查找" columnsToEdit"中的更改。当我打电话给" console.log" in" columns"它会返回预期的结果,但在我看来,点击" language-switch"后没有任何反应。那么为什么我的组件没有改变"标题"在视野中?任何帮助将不胜感激。
答案 0 :(得分:1)
显示更多代码。 Your code is working fine!
但是,您需要了解您的媒体资源columns
将始终与columnsToEdit
完全相同。我不确定您想要做什么,但目前您没有在columns
做任何事情。
答案 1 :(得分:0)
你可以试试这个:
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;
}),