ルートで定義された特定のページの両方で使用される AngularJS コントローラーがあります。
when("/search/:term", {controller:'SearchCtrl', templateUrl:'/static/templates/supersearch/list.html'});
すべてのページで使用されるヘッダーの要素にも添付されます。
<div ng-controller="SearchCtrl">
<form class="navbar-form pull-left super-search">
...
</form>
<div>
コントローラー内から、どのコンテキストで実行されているかをどのように確認できますか?
私が試したこと:
ng-init
<div ng-controller="SearchCtrl" ng-init="init(true)">
ヘッダー検索フォームから実行されているかどうかをコントローラーに伝えるために使用しようとしましたがng-init
、コントローラーの後に実行されるようで、渡されたパラメーターにアクセスできません。
$要素を渡す
コントローラーに注入$element
すると、ディレクティブがアタッチされている DOM ノードにアクセスできますng-controller
が、ルートのあるページの場合、Angular でエラーが発生します。これは$element
、注入できるものがないためです。
そのため、パラメーターをコントローラーに渡す方法、またはコントローラーが実行されているコンテキスト (インラインng-controller
とルート) を伝える方法が必要です。ありがとう!