2017-01-05 12 views
0

私は次のアプリケーションを持っています:https://fiddle.sencha.com/#view/editor&fiddle/1nmm。私はextjs 6を使用しています。Extjs変数を値にバインド

行のダブルクリックイベントの後、私は新しいタブを開きたいと思います。新しいタブには、グリッドからの情報を含むフォームが含まれている必要があります。私の問題は、表示フィールドの値をバインドしようとすると、出力が空になります(何も表示されません)。

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

上記 'レコードは' 次のように宣言されています。

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

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

適切displayfieldの値にバインドする方法は?

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}' 
    } 

私はあなたのフィドルにそれをテストし、それが正常に動作します:

答えて

0

2物事:

1)あなたはTabUIControllerでのviewmodelにデータを渡している方法を変更します。

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

それらのものを再マップしようとしない点はありません。

2)ビュー内のバインドステートメントをvalue: '{record.ts_id}'に変更すると、バインディングはレコードを見るときにフィールドにドリルインするほどスマートです。

+0

それは働いています:[ここ](https://fiddle.sencha.com/#fiddle/1nog&view/editor)はフィドルです。私はまだいくつかの質問があります。それは、表示フィールドの値にバインドするとき、バインド可能な変数は、ビューのモデルからのものであり、設定からのものではないようです。 configを使ったアプローチは、階層の下にデータを渡す場合に使用されます(たとえば、モーダルウィンドウがある場合など)。そうでない場合は、設定アプローチが使用されていますか? – florin

0

はこれを試してみてください。

+0

はい、動作しますが、新しいタブを開いてグリッドの選択を変更すると、[ここ](https://fiddle.sencha.com/#fiddle/1nof&view/editor)のキャッチがあります開いているタブにも変更されます。これは望ましくない動作です。 – florin

関連する問題