問題タブ [angularjs-controller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - Angularjs でのディレクティブからコントローラーへの通信
私はangularjsが初めてです。次のコードがあります。コントローラーでマップのオブジェクトにアクセスしたいと思います。ここで私はそれをコントローラーに渡す方法を知ることができませんか?
私のカスタムディレクティブ:
javascript - Angular ngController とディレクティブ内に構築されたコントローラー
コントローラーを作成するこれら2つの方法のユースケースは何なのか疑問に思っています。
ngController の使用:
controller 属性を使用してディレクティブ内でコントローラーを構築する:
同じ要素で両方が呼び出された場合、ディレクティブ内でコントローラーを構築しない理由はありますか?
コントローラーがどれほど広く使用されているか/複雑であるかという問題ですか?
angularjs - AngularJS コントローラー通信
必要なことを正しい方法で行っているかどうかわかりません...コントローラーが2つあります。
SiteMenuCntlおよびDashboardCntl
SiteMenuCntl は UL タグにバインドされており、サイトのメニューです。デフォルトでは非表示になっており、認証情報が確認され、DashboardCntl が読み込まれると、メニューが表示されるはずです。
私はこれを試しました:
ただし、イベント showTree は発生しません。私はどこで間違っていますか?それを行うより良い方法はありますか?
javascript - 一般的な Angular JS コントローラー ロジックを作成するにはどうすればよいですか?
私は Angular JS を使用して、動的フォーム生成を処理できる必要がある SPA の概念実証に取り組んでいます。このプロジェクトは基本的に、サーバーに対して評価される質問に答えるためにユーザーが複数の画面を通過するインタビュー スタイルのアプリケーションです。サーバーコールから実際のページコンテンツを取得する、任意のインタビューページを処理できる汎用コントローラーを作成しようとしています (ビューは明らかにページ固有になります)。返されたデータを包含変数にラップするだけで、ページ コンテンツをかなり簡単に処理できるため、ビューはそのルート変数にアクセスし、JSON を使用してパスダウンするだけで済みます。
例 (pageData は汎用コンテナ変数):
問題は、単純なデータ出力よりも少し複雑なものを統合したい場合に発生します-標準テーブルへのページネーションまたはソートを実装するためのngTableディレクティブのようなものです。このためのロジックは、コントローラー内に含まれているはずです。だから私の質問は、JSON 応答を見て、このngTableの行に沿って何かを作成するために、コントローラーに 1 つ以上の動的コードを作成できるように、コントローラーを十分に汎用的にすることができるかどうかです。基本的に、テーブルの設定として使用できるプロパティ オブジェクトを持つ配列を応答で確認し、コントローラーですべての JSON を反復処理してこれらを見つけます。
参考までに、上記のリンクに従って、コントローラーの ngTable に必要なコードを次に示します。
angularjs - 親ディレクティブのコントローラーを再帰的に要求してアクセスする方法は?
親の「ボックス」ディレクティブのコントローラーに再帰的に到達しようとしています:
コントローラー変数がリンク関数にあることを期待しますundefined
が、実際のボックス ディレクティブのコントローラーを取得します。
だから私の質問は...次のような場合にPARENTコントローラーにアクセスする方法です:
angularjs - AngularJS の共通コントローラー機能 - 必要に応じてミックスインするか、$rootScope で定義しますか?
私は AngularJS の v1.2.0 rc2 を使用しており、複数のコントローラーに共通の機能を提供するための最良の方法を知りたいです。
モデルを編集するすべてのコントローラーで使用したい次の検証関数があります。
コントローラを DRY に保ちたいので、次のようにファクトリを定義しました。
最初は、次のように、ファクトリを必要なコントローラーにミックスしました。
しかし、次のようにモジュールの run メソッドで $rootScope に追加できることに気付きました。
現在、それらはすべてのコントローラーで無差別に利用でき、配線を行う必要が少なくなります。
関数はビュー テンプレートで次のように使用されます。
私の質問は次のとおりです。
- $rootScope に一般的な関数を追加するのは避けるべきですか? もしそうなら、落とし穴は何ですか?
- 必要な場合にのみ共通の機能を混在させる方がよいでしょうか?
- 同じ結果を達成するためのより良い方法はありますか?
更新されたソリューション
悪臭がする $rootScope に関数を追加する代わりに、カスタム ディレクティブを使用することにしました。
カスタム属性を作成validation-class-for="<input.name>"
しdisabled-when-invalid
たので、マークアップは次のようになります。
ディレクティブは単にフォームの祖先を必要とし、関数を監視して状態を判断します。
これで、検証ファクトリーも必要なくなりました。
angularjs - Angular でのモジュールのロード
私はAngularJSが初めてです。学ぶために、私は AngularJS のチュートリアルに頼ってきました。現在、AngularSeed プロジェクト テンプレートを使用してアプリを構築しようとしています。プロジェクトを可能な限りモジュール化しようとしています。そのため、私のコントローラーはいくつかのファイルに分割されています。現在、私は以下を持っています:
私のapp.jsファイルには次のものがあります:
私の loginCtrl.js ファイルは、現時点では非常に基本的なものです。次のものしかありません。
私の homeCtrl.js は、名前を除いてほとんど同じです。次のようになります。
私の index.html ファイルは angularSeed index-async.htmlファイルです。ただし、依存関係をロードすると、次のようになります。
私の問題は、アプリが機能する場合と機能しない場合があることです。何かが他の何かの前にロードされるようなものです。
時々、このエラーが表示されます。また、コンソール ウィンドウに「Uncaught ReferenceError: app is not defined」というエラーが loginCtrl.js で表示されることもあります。homeCtrl.js で時々発生します。
私は何を間違っていますか?コントローラーをモジュールに入れ、そのモジュールを app.js ファイルの app.config に渡す必要があるように感じます。ただし、a)それが許可されているかどうかはわかりません.b)それを行う方法がわかりません。