0

私は2つの機能を持っています.1つはダイアログを開くためのもので、もう1つはデータをサーバーに投稿してからダイアログを閉じるためのものです。問題はダイアログを閉じることができないことです。ここにコードがあります

 vm.openCreateDialog = function () {

                 var Dialog = ngDialog.open({
                    template: 'user/create',
                    className: 'ngdialog-theme-default'
                })
            }
vm.createUser = function () {
           DataService.createUser(vm.user).then(function (response) {
                $log.log('promise returned successfully')
                Dialog.close();

            }).catch(function (e) {
                $log.log('catch registration error')

            });
}
4

3 に答える 3

1

ngDialog.open() は id のオブジェクトを返します。id はダイアログ ボックスの id です。ダイアログ ボックスを閉じるために使用します。

 vm.openCreateDialog = function () {

                 vm.Dialog = ngDialog.open({
                    template: 'user/create',
                    className: 'ngdialog-theme-default',

                 })
                 vm.dialogId = vm.Dialog.id;
            }

別の関数から、IDを使用してダイアログを閉じました

  ngDialog.close(vm.dialogId)
于 2016-04-24T05:24:01.263 に答える
0

変数にopenCreateDialog値を割り当てますが、のスコープDialogにローカルであるため、他の場所からアクセスすることはできませんopenCreateDialogvarステートメントの仕組みの詳細については、こちらを参照してください。

この問題を解決するにはDialog、他の関数内から見えるようにする必要があります。これを行うにはさまざまな方法がありますが、私は単純に に置き、vmそこからアクセスします。

 vm.Dialog = ngDialog.open({
 // ...
 vm.Dialog.close();

JSFiddle の作業例

于 2016-04-23T14:14:41.377 に答える