アプリケーションにポップアップがほとんどありません。1 つは「About」を表示するためのもので、2 つ目は連絡先フォームを表示するためのものです。私が現在行っていることは、ポップアップ DOM 全体をテンプレートに入れ、次のようなカスタム ディレクティブを記述することです。
angular.module('app').directive('contactForm', function() {
return {
restrict: 'E',
replace: true,
scope: {},
templateUrl: 'contactForm.html',
controller: function($scope) {
$scope.submitForm = function() {
...
}
},
link: function(scope, el) {
scope.$on('openContactForm', function() {
el.show();
});
}
}
});
私のindex.htmlのどこかでそのようなディレクティブを呼び出します
<body>
<about-popup></about-popup>
<contact-form></contact-form>
...
...
</body>
ページのどこかに、ボタンに関数がバインドされた次のようなコントローラーがあります。
angular.module('app').controller('SideBarController', function($scope, $rootScope) {
$scope.openContactForm = function() {
$rootScope.$broadcast('openContactForm');
}
});
それがそれを処理する最善の方法だとは思いませんが、これをより良く行う方法がわかりません。アイデアや例はありますか?