0

Sencha Touch 2 のアーキテクチャを理解するのに苦労しています。他の言語やフレームワークで行っている最も基本的なことでさえ、信じられないほど苦痛であることがわかっています。

現在、標準のマスター/詳細ビューを実行したいだけです。ストアをリスト ビューに読み込み、各リスト アイテムをクリックして詳細ビューにスライドさせたいと考えています。最初のリスト ビューには非常に多くの項目が含まれている可能性があるため、コントローラーでこのメソッドを使用して少量のデータのみを読み込んでいます。

viewUserCommand: function(list, record) {
      // console.log(record);
      var profileStore = Ext.getStore("Profiles");
      profileStore.setProxy({
        url: 'http://localhost:8000/profile/' + record.data.user_id
      });
      profileStore.load();

      // console.log(profileStore);

      Ext.Viewport.animateActiveItem(Ext.getCmp('profileview'), this.slideLeftTransition);

    }

まず、各タップ イベントの url プロパティを変更するのは少し面倒です。「this.id」などを指定してストアに渡す方法はありませんか?それとも、DB テーブル全体をオブジェクトにロードする必要がありますか?

このメソッドからの戻り値を console.log に記録できます。これはまさに私が望むものです。詳細ビューを表示するにはどうすればよいですか? DataView コンポーネントを利用しようとしましたが、データが表示されません。sencha の Web サイトの例はかなりまばらで、比較的文脈がありません。つまり、例をコピーして貼り付けても失敗する可能性があります。(Ext.modelMgr.getModel() を使用して試した例はすべて失敗しました。)

私は、このフレームワークが新しいことの一部であることを知っています。おそらく、それを理解する上で巨大な穴を見逃していると思いますが、何か手がかりはありますか?

4

1 に答える 1

0

ドキュメントを確認することをお勧めします。単一のモデルをロードする例があります。

http://docs.sencha.com/touch/2-0/#!/api/Ext.data.Model

Ext.define('User', {
    extend: 'Ext.data.Model',

    config: {
        fields: ['id', 'name', 'email'],
        proxy: {
            type: 'rest',
            url : '/users'
        }
    }
});

//get a reference to the User model class
var User = Ext.ModelManager.getModel('User');

//Uses the configured RestProxy to make a GET request to /users/123
User.load(123, {
    success: function(user) {
        console.log(user.getId()); //logs 123
    }
});
于 2012-07-18T00:39:01.650 に答える