1

私の状況を説明しましょう:

内部に配列フィールドを持つモデルがあります

Ext.define('MyModel',{
  extend: 'Ext.data.Model',
  fields: [
    { name: 'myfield', type: 'array' }
  ]
})

このようなコンテンツデータ

data = Ext.create('MyModel',{
  myfield: [ 'one', 'two', 'three', 'four' ]
})

Ext.form.field.Baseこの配列を todo-list として扱い、その中に項目を含むフィールドを作成するように拡張したい( Ext.form.field.Trigger「todo」を追加し、Ext.ListView「todo's」を表示する)。

Ext.form.field.Baseアイテムを収容するのがどれほど難しいかはわかりませんが、より良い解決策はありますか.

フィールドは配列を取得し、それをフォームloadRecord()に与える必要があります。getRecord()

私が見る他の可能な解決策:

1) フィールドを html-template と Vanilla-javascript のみで作成します ( ExtJS に既に存在するものを実装する理由が悪いため)

2) モデル関係 (関連するモデルごとに「作成、更新、削除」を実装し、手動でロードする必要があるため、悪い)

読んでくれてありがとう、どんなアイデアでも大歓迎です!

4

1 に答える 1

1

質問には直接関係ありませんが、「配列」は Ext.data.Field の有効なフィールド タイプではありません。データ変換を行わない場合は「auto」を使用するか、タイプを割り当てないでください。

Re: カスタムの複雑なフォーム フィールドです。ExtJS では確かに可能であり、Trigger フィールドの拡張を作成することは間違いなくやりたいことです。複雑なデータを処理するカスタム トリガー フィールドの例を次に示します: http://existdissolve.com/2012/12/extjs-4-custom-editor-for-property-grid/。この例はカスタム プロパティ グリッド用ですが、原則はどのカスタム フォーム フィールドでも同じです。

カスタム フィールドで最も重要な部分は、createPicker()メソッドの実装と、基になるフィールドの値を設定するために定義したメカニズムです。

これがあなたにとって良い出発点になることを願っています。

于 2013-05-29T11:22:23.697 に答える