2017-01-05 5 views
0

Ich habe folgende Anwendung: https://fiddle.sencha.com/#view/editor&fiddle/1nmm. Ich benutze extjs 6.Extjs config Variable auf Wert

Nach Doppelklick-Ereignis in einer Zeile, möchte ich eine neue Registerkarte öffnen. Die neue Registerkarte sollte ein Formular mit den Informationen aus dem Raster enthalten. Mein Problem ist, dass, wenn ich versuche, den Anzeigefeldwert zu binden, die Ausgabe leer ist (nichts wird angezeigt).

xtype: 'displayfield', 
fieldLabel: 'Id', 
bind: { 
    value: '{record.data.ts_id}' 
} 

Der oben 'Record' wird wie folgt erklärt:

config: { 
    record: null, 
    rowIndex: null 
}, 

bind: { 
    record: '{recordVM}', 
    rowIndex: '{rowIndexVM}' 
} 

Wie man richtig displayfield Wert binden?

Antwort

0

2 Dinge:

1) ändern Sie die Art und Weise können Daten auf das Viewmodel in den TabUIController vorbei ist:

viewModel: { 
    data: { 
     record: record, 
     rowIndex: rowIndex 
    } 
} 

kein Sinn Es ist versucht, die Dinge neu zu kartieren.

2) Ändern Sie die Bind-Anweisung in Ihrer Sicht auf value: '{record.ts_id}', die Bindung ist intelligent genug, um in die Felder zu bohren, wenn es einen Datensatz sieht.

+0

Es funktioniert: [hier] (https://fiddle.sencha.com/#fiddle/1nog&view/editor) ist die Geige. Ich habe noch einige Fragen: Es scheint, dass beim Binden an den displayfield-Wert die bindbare Variable die aus dem View-Modell ist, nicht die aus der Config. Der Ansatz mit config wird verwendet, wenn Sie Daten in der Hierarchie weiterleiten möchten (zum Beispiel wenn Sie ein modales Fenster haben)? Wenn nicht, wenn config approach verwendet wird? – florin

0

Versuchen Sie folgendes:

TabUIGrid.js

bind: { 
    store :'{users}', 
    selection : '{myrecord}' 
}, 

TabFormTest.js

{ 
     xtype: 'displayfield', 
     fieldLabel: 'Name', 
     bind: '{myrecord.ts_name}' 
    }, { 
     xtype: 'displayfield', 
     fieldLabel: 'Email', 
     bind: '{myrecord.ts_email}' 
    } 

ich es auf Ihrer Geige getestet und es funktioniert gut.

+0

Ja, es funktioniert, aber es gibt einen Haken: [hier] (https://fiddle.sencha.com/#fiddle/1nof&view/editor), wenn Sie eine neue Registerkarte öffnen und dann ändern Sie die Rasterauswahl, die Informationen in der geöffneten Registerkarte ändert sich auch. Dies ist ein unerwünschtes Verhalten. – florin