私は自分のアプリケーションで ngDialog を使用しており、必要なときにいつでも使用できる一般的な確認モーダルを作成したいと考えています。確認メッセージは異なります。
私の質問:
1- ngDialog 機能を使用してディレクティブを作成することは良い考えですか?また、その設計はどのようなものですか?
2-ngDialogコードのconfirm()とopenConfirm()の違いは何ですか.
前もって感謝します
さて、あなたの質問に答えるために、
1 - ディレクティブを作成し、確認タイプ (送信確認、削除確認など) を渡すと、ディレクティブscope
は指定したタイプに基づいてメッセージをレンダリングする必要があります。type
submit
delete
2 -openConfirm()
アクションを確認することによってのみ閉じることができる ( とは異なり) ngDialog のタイプであるngDialog.open()
ため、 のどこかをクリックしてもダイアログを閉じることはできませんDOM
。confirm()
ダイアログを閉じるために使用するメソッドにすぎません。このメソッドを使用してダイアログを閉じ、モーダルを開いたときに返されたプロミスを解決して<button ng-click="confirm()">Confirm</button>
、ダイアログ内で続行できるようにします。
これがあなたを助けたことを願っています
openConfirm()
エスケープを押すか、ダイアログウィンドウの外側をクリックしても、デフォルトでは閉じないダイアログを開きます。この関数は、ダイアログが閉じられた方法に応じて、解決または拒否される promise を返します。
promise を解決するには、ダイアログを次のようにする必要があります。
ngDialog.openConfirm({
template: '<div></div>',
controller: ['$scope', function($scope) {
// Controller logic here
}]
}).then(function (success) {
// Success logic here
}, function (error) {
// Error logic here
});
ngDialog.openConfirm({
template: '<div></div>',
scope: $scope, // <- ability to use the scopes from directive controller
}).then(function (success) {
// Success logic here
}, function (error) {
// Error logic here
});
scope: $scope
ダイアログ内を通過する限り、ディレクティブコントローラーを使用できます
index.html
タイプをからconfirm
に切り替えてみてremove
、ダイアログの更新されたコンテンツとボタン テキストを確認してください。