ビューを Ext.Navigation.View コントロールにプッシュすると、プッシュしたビューはレンダリングされますが、プッシュしたデータはレンダリングされません。このビューは、いくつかの json データ (名前と姓) を含む非常に単純な DataView コントロールをレンダリングします。
「Ext.Create」を使用してビューを明示的に作成すると機能しますが(コントローラーのコメントアウトされた行を参照)、ビューの「xtype」と関連するプロパティをプッシュできる場所でこれを行ったことがあると確信しています/ビューのデータ。私は正しいですか?
ちなみに、フォーム送信のコールバックから返される json をテストしましたが、すべて問題ありません。「プッシュ」の一部として送信したデータをビューがレンダリングしたくないようです。これが私のコードです。何か不足していますか?:
意見:
Ext.define('MyCo.Booking.view.PatientClinicSearchResults', {
extend : 'Ext.DataView',
xtype : 'DataViewPatientSearchResults',
itemTpl : '{Name}',
store : {
fields : ['Name'],
autoLoad : true
}
}))
コントローラー:
Ext.define('MyCo.Booking.controller.Main', {
extend: 'Ext.app.Controller',
config: {
refs: {
navViewClinics : 'NavViewClinics',
formPanelClinicPatientSearch : 'FormPanelClinicPatientSearch'
},
control: {
'NavViewClinics list' : {
itemtap : 'ClinicUserSearch'
},
'FormPanelClinicPatientSearch button' : {
tap : 'ClinicPatientSearchResults'
}
}
},
ClinicUserSearch : function(list, index, element, record) {
this.getNavViewClinics().push({ xtype : 'FormPanelClinicPatientSearch' });
},
ClinicPatientSearchResults : function(button, e) {
var form = this.getFormPanelClinicPatientSearch();
var navClinics = this.getNavViewClinics();
form.submit({
success : function(form, result) {
// var view = Ext.create('MyCo.Booking.view.PatientClinicSearchResults', {
// title : 'Search Results',
// fullscreen: true,
// store: {
// fields: ['Name'],
// data : result.items
// },
// itemTpl: '<div>{Name}</div>'
// });
// navClinics.push(view);
navClinics.push({ xtype : "DataViewPatientSearchResults",
title : 'Test',
store : {
data : result.items
}
});
}
});
}
});
フォーム送信コールバックから受け取った JSON:
{
"success" : true,
"items" : [
{
"Name": "Jon",
"Surname": "Doe"
},
{
"Name": "Karl",
"Surname": "Doe"
}
]
}
どんな助けでも大歓迎です。ありがとうございました。