Emberjs-classinstance
EmberJS-クラスとインスタンス
クラスは、変数または関数のコレクションを含むテンプレートまたはブループリントであり、インスタンスはそのクラスのオブジェクトに関連しています。 Ember.ObjectでEmberクラスを作成および拡張することは、Emberオブジェクトモデルの主要なプロパティです。
クラスの定義
Ember.Objectの_extend()_メソッドを使用して、新しいEmberクラスを作成できます-
const Demo = Ember.Object.extend ({
//code here
});
上記のコードは、初期化子、計算されたプロパティなどからプロパティを継承する「デモ」と呼ばれる新しいEmberクラスを作成します。 クラスを作成した後、以下に示すようにcreate()メソッドを使用して、そのインスタンスを作成する必要があります-
const state = Demo.create();
上記のインスタンス「状態」を使用して、setおよびgetアクセサーメソッドを使用してプロパティにアクセスします。
console.log(state.get('stateOn'));
以下に示すように、setメソッドを使用して「stateon」プロパティを変更できます-
state.set('stateOn', true);
インスタンスの初期化
_init()_メソッドを呼び出すことにより、新しいインスタンスを初期化できます。 クラスでオブジェクトを宣言する場合、_init()_メソッドで各インスタンスを初期化する必要があります。
例
次の例では、上記のプロパティを使用し、Emberオブジェクトが初期化されたときに警告メッセージを表示します-
import Ember from 'ember'; //import ember module
export default function() {
//new ember object
const Demo = Ember.Object.extend ({
init() {
alert('The default property of stateOn is : ' + this.get('stateOn'));
},
stateOn: false
});
const state = Demo.create(); //new instance from object with create() method
state.set('stateOn', true);
console.log(state.get('stateOn'));
}
今_app.js_ファイルを開き、ファイルの上に次の行を追加します-
import classinstance from './classinstance';
ここで、classinstanceは、「classinstance.js」として指定され、「app」フォルダーの下に作成されるファイルの名前です。 次に、エクスポートの前に、下部の継承された「classinstance」を呼び出します。 これは、classinstance.jsファイルで作成されたclassinstance関数を実行します-
classinstance();
出力
エンバーサーバーを実行すると、次の出力が表示されます-