4

http://docs.sencha.com/architect/2-0/#!/guide/views_forms_extjsに示されている例を拡張して、MVC中心のアプローチを使用しています。そのため、クリックハンドラーをビューから新しく作成したコントローラーに移動します。

クリックは正常に機能していますが、コントローラーのコンテキストからフォームを操作する方法がわかりません(ビューはthis.getForm()を使用していました)。

これが私がこれまでに持っているものです、

Ext.define('LoginExample.controller.LoginController', {
    extend: 'Ext.app.Controller',


    onLoginButtonClick: function(button, e, options) {
        console.log('button clicked');


        if (this.getForm().isValid()) {
            this.getForm().submit({
                url: 'login.php',
                success: function(form, action) {
                    Ext.Msg.alert('Login Successful!');
                },
                failure: function(form, action) {
                    Ext.Msg.alert('Login Failed!');
                }
            });
        }
    },


    init: function() {
        this.control({
            "#loginButton": {
                click: this.onLoginButtonClick
            }
        });
    }

});

明らかに、onLoginButtonClickのコンテキストでのこれは、ビューではなく、代わりにコントローラーです。

与えられたパラメーター(Ext.button.Buttonボタン、イベントe、オブジェクトオプション)を前提として、適切なフォームで送信を取得するにはどうすればよいですか?

ExtJS4を使用してこれに注意する必要があります。

4

1 に答える 1

4
button.up('form');

トリックを行います。

BasicFormオブジェクトを操作するには、次を使用します。

button.up('form')。getForm()

于 2012-07-18T18:25:14.380 に答える