angularJSを使用してJoomla 3カスタムコンポーネントビューを構築するための推奨される方法は何ですか?


7

joomlaカスタムコンポーネントリストビューに角度jsを正常に統合したユーザーからの情報はほとんどありません。私は次を見つけました:

/programming/23365907/how-to-integrate-angularjs-app-inside-joomla および http://jeviathon.com/2014/06/02/joomla3/

そして、私は上のドキュメントを読んでいるJoomlaのAJAXインターフェース- https://docs.joomla.org/Using_Joomla_Ajax_Interface -役立つ見えました。

私の特定のプロジェクトは大きなjです!3.4フォーム、アイテム、リストビューを備えた、component-creator.comで多数のカスタムコンポーネントが開始されたサイト。私の最初の目標は、洗練された検索とフィルタリングUXのために、いくつかの適応されたリストビューでAngularを活用することです。

専門家からの推奨プラクティスは何ですか?誰かこれをやったことがありますか?手順/落とし穴は何ですか。

ありがとう

回答:


7

私の経験によると:

  • JSONビュー:私はコンポーネントベースのFoF自動JSONレンダリングを作成しましたhttps://github.com/akeeba/fofこのように、/ getクエリをロードするのは簡単です。これにもかかわらず、特定のタスクは単純なコントローラー機能で簡単に解決できます。FoFを使用すると、完璧なケースでは、Url(index.php?option = com_todo&view = tasks&format = json)を呼び出して、追加のコードなしでJSON出力を取得できます。実際には、タイムゾーンを変換したり、AngularJSの文字をエンコードしたりするには、view / tmpl / tasks_json.phpを定義する必要があります。

  • Joomla Ajaxインターフェースについて:これは魅力的な機能であり、プラグインまたはモジュールを作成するだけでAjaxクエリを統合できます。これは、モジュールのAjax統合のためのテクノロジーです。しかし、コンポーネント開発では、より良い制御のためにコンポーネントレベルでのJSON生成を選択します。

  • モジュールマネージャー:AngularJSには独自のモジュール定義があります。ほとんどのAngularJSアプリは、アプリ、コントローラー、サービスで構成されています。一方、Joomlaには、JavaScriptをページに追加する簡単な方法があります(addScriptまたはaddScriptDeclaration)。したがって、健全なプロジェクト組織では、すべてのAngularJSファイルを最小化されたファイルにコンパイルする開発ツールボックスを計画しています。
  • Joomla MVC <-> AngularJS MV *両方のフレームワーク間で直接変換はありません。そして、Joomla Viewは、AngularJSビューが存在するキャンバスにすぎません。AngularJSサービスはJoomlaモデル/テーブルと一致する場合があります。
  • セキュリティと認証 AngularJSはJoomlaフレームワークのガイドラインに従う必要があります。名前のとおり、$ resourceおよび$ httpクエリのトークン。すべてのアクションはACLでチェックする必要があります。

「FoF自動JSONレンダリングに基づいたコンポーネントを作成しましたgithub.com/akeeba/fofこのように、/ getクエリをロードするのは簡単です。」
user2097091 2015

FoFを使用すると、完全な場合に、Url(index.php?option = com_todo&view = tasks&format = json)を呼び出し、追加のコードなしでJSON出力を取得できます。実際には、タイムゾーンを変換したり、AngularJSの文字をエンコードしたりするには、view / tmpl / tasks_json.phpを定義する必要があります。
アニバル2015

そこにあるコンポーネントの例を知っていますか?
user2097091 2015

AutoTweetNGおよびJoocial extly.com/autotweet-ng-pro.htmlの Social Composerに実装しました;-)
Anibal

コミュニティにとって、具体的な例や手順を使って回答を広げてみませんか?
user2097091 2015

1

現在、Joomlaに対して3つのAngularアプリを実行しています。

基本的な考え方は、リソースを設定して、オプション/フォーマット/コントローラのリクエストフィールドを処理できるようにすることです。次に、コントローラでモデルを呼び出して計算を行い、結果をモデルのどこに保存したかに応じて、

$ response = new stdClass(); $ response-> data = $ model-> data;

echo json_encode($ response);

超きれい、超簡単。

アプリのレンダリングに関する限り、私の場合、アプリごとに1つのjoomlaビューがあります。tmpl / default.phpは、基本的にはメインhtmlへの単なるインクルードです。

私はビルドのベースとしてngBoilerplateを使用しているので、gruntが挿入していたスクリプトを見つけるためにindex.htmlを変更する必要がありました。

アプリ自体は/ media / com_extension / lib / app / buildにあります。何も影響を及ぼさないためビルドに残しましたが、アプリが提供されるフォルダーから簡単に編集およびビルドできるようになりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.