サイドバーの指令を作成したい。 サイドバーを切り替える機能がコントローラにあります。コントローラからの角度指令関数
アプリケーションの他のコントローラからこの機能にアクセスするにはどうすればよいですか?
ありがとうございます!
サイドバーの指令を作成したい。 サイドバーを切り替える機能がコントローラにあります。コントローラからの角度指令関数
アプリケーションの他のコントローラからこの機能にアクセスするにはどうすればよいですか?
ありがとうございます!
アプリケーション全体からサイドバーを操作したい場合は、おそらくサービス内のサイドバーの状態を保存する方が良いでしょう。このサービスにアクセスするには、そのサービスにアクセスする必要があります。また、関連するServiceの値を変更することでSideBarの状態を変更できます(サービスは常にSingletonパターンのようにインスタンスが1つしかないため可能です)。
したがって、現在のケースの基本的な通信パターンを示す画像を添付します。
我々は国家サービスにactive
変数の状態を変更する場合は、すべての3つのコントローラがサービスの同じインスタンスにリンクされているので、サイドバーの指令は、影響を受けることになります。
ここでControllers service communicationは、サービスを介したコントローラ間の通信の小さな例です。
希望すれば、お手伝いします!
Iは
Its'notはコントローラ内部の任意のUIロジックを使用するようにお奨めサイドバーをトグルコントローラ内の機能を有します。 Angularの世界では、これらのことは軽蔑的なHTMLを使用することで実現できます。
<a ng-click="isReplyFormOpen = !isReplyFormOpen">Reply</a>
<div ng-show="isReplyFormOpen" id="replyForm"></div>
あなたの質問に答えるには:あなたの機能を含むサービスを定義することができます。
あなたが望む任意のコントローラにサービスを注入するよりです。
(function(){
angular.module('YourApp')
.controller('ControllerName',['ToggleBar',function(ToggleBar){
//Call the service func...
ToggleBar.toggle();
}]);
)();