2017-03-24 1 views
0

Meine Komponente beobachtet keine Änderungen in meinem Array von Objekten, wenn ich die Sprache ändere. Es funktioniert nur nach Änderung der Route, aber es ist verdient, alles sofort zu ändern, ohne Seite neu zu laden.Berechnete Eigenschaft beobachtet keine Änderungen an Objekten im Array

Komponentencode:

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; 
    }), 

Ich denke, es sollte funktioniert. "ColumnsToEdit" sucht nach Änderungen von i18n.locale in "columsToEdit". Next "columns" sucht nach Änderungen in "columnsToEdit". Wenn ich "console.log" in "columns" anrufe, gibt es das erwartete Ergebnis zurück, aber meiner Ansicht nach passierte nach dem Klick auf "switch-switch" nichts. Warum hat meine Komponente "Titel" nicht verändert? Jede Hilfe wird geschätzt.

Antwort

1

mehr Code anzeigen. Your code is working fine!.

Sie müssen jedoch verstehen, dass Ihre Eigenschaft columns wird immer genau das gleiche wie columnsToEdit sein. Ich bin mir nicht sicher, was Sie wollen zu tun, aber derzeit tun Sie nichts in columns.

0

Können Sie dies versuchen:

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; 
    }), 
Verwandte Themen