Sencha-touch-data-model

提供:Dev Guides
移動先:案内検索

Sencha Touch-モデル

モデルは基本的に、特定の種類の情報を保存するために個別に使用されるデータまたはフィールドのコレクションです。

Senchaは基本に基づいたアーキテクチャーに従っているため、クラスをカスタマイズして特定のタスクを実行できます。

Ext.data.Modelは、モデルを定義するときに拡張する必要がある基本クラスです。

モデルの定義

Ext.define('Student', {
   extend: 'Ext.data.Model', config: {
      fields: [
         { name: 'id', type: 'int' },
         { name: 'name', type: 'string' }
      ]
   }
});

フィールド

フィールドは、モデルと呼ばれる情報とコレクションの一部を保存するためのものです。

主に、次のタイプのフィールドをモデルに定義します-

  • 整数
  • ひも
  • ブール値
  • 浮く

構文

{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' },
{ name: 'marks', type: Float },
{ name: 'newStudent', type: 'boolean' }

バリデーター

Sencha Touchでは、モデルは多くの検証をサポートして、データを正しい形式に保ちます。

以下はバリデーターです-

  • プレゼンス-これらが名前フィールドの空の値にならないようにします。
  • 長さ-フィールドの長さを制限します。 最小と最大の長さを定義する2つのパラメーター、minとmaxがあります。
  • 形式-フィールド値が指定された式に従っていることを確認します。 次の例では、数値以外の値を追加することはできません。
  • Inclusion -リストで定義されている値のみを保証します。 次の例では、値にMとFのみを許可しています。
  • 除外-リスト配列で定義されている値を許可しないようにします。 次の例では、年齢としてゼロを許可していません。

構文

validations: [
   { type: validation type,  field: on which the validation has to applied }
]
validations: [
   { type: 'presence',  field: 'name' },
   { type: 'length',    field: 'name', min: 5 },
   { type: 'format',    field: 'age', matcher:/\d+/},
   { type: 'inclusion', field: 'gender', list: ['male', 'female'] },
   { type: 'exclusion', field: 'name', list: ['admin'] }
],

//now lets try to create a new user with as many validation errors as we can
var newUser = Ext.create('User', {
   name: 'admin', age: 'twenty-nine', gender: 'not a valid gender'
});

//run some validation on the new user we just created
var errors = newUser.validate();

console.log('Is User valid?', errors.isValid());
//returns 'false' as there were validation errors

console.log('All Errors:', errors.items);
//returns the array of all errors found on this model instance

console.log('Age Errors:', errors.getByField('age'));//returns the errors for the age field