0

getView(Sencha touch で view_name)`を呼び出すにはどうすればよいですか? 私は通常 extjs でこれを行いますが、sencha touch ではできません。アプリケーションの概念が理解できませんでした。

run_edit: function(data) {
    $this = this;
    this.mode = "update";
    this.data = data;
    this.win = this.getView('Group_prop').create();

    var form = this.win.down('form');
    var util = this.getController('controller_Helper');

    form.getForm().loadRecord(data);
    util.form_lock({
        form:form,
        items:['GROUP_KODE']
    });
    util.form_require({
        form:form,
        items:['GROUP_KODE','GROUP_NAMA']
    });

    this.win.show();
},
4

3 に答える 3

1

ビューを作成してウィンドウに設定しようとしているようですが、sencha touch では次のようにできます。

Ext.Viewport.add(Ext.create('MyApp.view.ViewName'));

ビューポートの代わりに、他のコンテナを取り、新しく作成されたビューをそれに設定できます

Ext.getCmp('myContainerId').add(Ext.create('MyApp.view.ViewName'));

後でこのビューを取得するにはid、ビューで構成を指定してから、次のように取得する必要があります。

var view = Ext.getCmp('ViewId');
于 2013-04-01T13:59:02.673 に答える
0

ビューを呼び出すには 2 つの方法があります

1.

        Ext.Viewport.setActiveItem({xtype:'TwowayMakePayment'});  // view xtype

2.

        var getti=Ext.create('VUCFyn.view.AfterLogin'); //create object 4 d view
    Ext.Viewport.add(getti);       // next add the object
    Ext.Viewport.setActiveItem(getti);     // final Active that obj
于 2013-04-03T13:04:29.847 に答える
0

わかりましたので、ビューを取得しようとしているようです: Group_prop。このビューの構成に、idまたはできればitemIdセットがあることを確認してください。例えば

Ext.define('MyApp.view.GroupProb', {
    extend: 'Ext.Panel',
    alias: 'widget.group_prob',
    config: {
        ...
        itemId: 'groupProb',
        ...
    },
    ....
});

コントローラーで、このビューに適切にアクセスするための参照を作成する必要があります。したがって、コントローラーは次のようになります。

Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',
    config: {
        refs : {
            groupProb : {
                autoCreate: true,
                selector: '#groupProb',
                xtype: 'group_prob'
            }
        },
        control: {
            ...
        },
        ...
    },
    run_edit: function(data) {
        $this = this;
        this.mode = "update";
        this.data = data;
        this.win = this.getView('Group_prop').create();

        var form = this.win.down('form');
        var util = this.getController('controller_Helper');

        form.getForm().loadRecord(data);
        util.form_lock({
            form:form,
            items:['GROUP_KODE']
        });

        this.win.show();
    },
   ...
});

あなたの関数から、変数からrun_edit作業しているように見えます(間違っている場合は修正してください)。Sencha Touch では、 を使用します。また、この関数の最後で関数 onを呼び出します。これは、 が表示されたときに実行することを示唆しています。そうは言っても、関数を次のようにしたい場合があります。windowsthis.winPanelsshowthis.winrun_editthis.winrun_edit

run_edit: function() {
    var me = this,
        mode = 'update',
        data = data,
        groupProbPanel = me.getGroupProb();

    // This assumes that your form component has an itemId.
    // You need one inorder use the down method. 
    var form = groupProbPanel.down('#form_itemId');

    // You may want to double check this. I don't think that is how you 
    // you get the controller.
    var util = this.getController('controller_Helper');

    form.getForm().loadRecord(data);
    util.form_lock({
        form:form,
        items:['GROUP_KODE']
    });
}

が表示されたときにこれが発生するようにするため、構成でshow イベントリスナーgroupProbPanel設定する必要があります。したがって、コントローラーは次のようになります。controlconfig

...,
config: {
    refs : {
        groupProb : {
            autoCreate: true,
            selector: '#groupProb',
            xtype: 'group_prob'
        }
    },
    control: {
        groupProb : {
            show: 'run_edit'
        },
        ...
    },
    ...
},
...
于 2013-04-06T17:07:13.373 に答える