Lightningアプリ開発でApexクラスの処理を呼び出す方法についてです。
まずcomponentで使用するApexクラスを宣言する必要があります。aura:componentタグでcontroller="ApexClassName"という感じで指定できます。このときクラス名には名前空間プレフィックス(namespace)を先頭につける必要があります。
これでLightning Component内で使用するApexクラスを宣言することができました。次にApexクラス側でLightningで使用するメソッドであることを宣言します。これは『@AuraEnabled』を宣言することで対応できます。
実際にApexクラスを呼び出すのは『controller.js』または『helper.js』で呼び出すことになると思います。Apexクラスで宣言している『getContacts』を呼び出したい場合は、『component.get("c.getContacts")』というように宣言します。『component.get()』はLightning用に用意されたメソッドみたいです。getContactsの前にある『c.』もおそらく決まった宣言方法だと思います。(componentのc?)
上の書き方でApexクラスの実行結果を変数『action』にセットできます。この処理の後は『action.setCallback』というように宣言することでApexクラスの戻り値を使用することができます。
data.getReturnValue()はLightning用に用意された関数で戻り値を取得するためのものだと思います。上の書き方で変数『v.contacts』にApexクラスの戻り値をセットしています。
『$A.enqueueAction(action);』という宣言方法があるのですが、おそらくこれも必ず宣言する必要があると思います。Cheat Sheetによると『Queues an action for batch execution』という説明がありました。単純に翻訳すると『バッチ実行のためのアクションをキューに入れる』という意味になりました。バッチ実行というのがまだよくわからないのですが、これで処理を実行しているのだと思います。
まだイマイチわかっていないことが多いのですが、LightningからApexクラスを呼び出す方法はこんな感じでした。