ng点击mdDialog的动作按钮不触发控制器功能

时间:2017-08-31 14:32:40

标签: angularjs angularjs-ng-click mddialog

我正在尝试取消隐藏角度对话框。我创建了一个非常简单的代码来显示自定义警报对话框。我正在尝试将字符串消息传递给对话框。对话框有一个OK按钮,可以关闭它。

正在正确传递邮件数据。但是由于某种原因,“确定”按钮不会触发对话框控制器的功能。

这是我的代码

Alert.html - 包含“警报”对话框的模板

<md-dialog>
    <md-dialog-content>
        {{message}}
    </md-dialog-content>

    <md-dialog-actions>
        <md-button ng-click="alertFunc">
            OK
        </md-button>
    </md-dialog-actions>
</md-dialog>

AlertCtrl.js - 包含警报对话框的控制器

app.controller('AlertCtrl', function ($scope, $mdDialog, message) {
    $scope.message = message

    $scope.alertFunc = function () {
        console.log("Closing Alert Dialog")
        $mdDialog.hide()
    }
})

DialogService.js - 包含启动警报对话框的API

app.service('DialogService', function($mdDialog) {

    // Launch Alert Dialog
    this.alert = function (message) {

        // Show Dialog
        $mdDialog.show({    templateUrl: 'Alert.html',
                            controller: 'AlertCtrl',
                            clickOutsideToClose: true,
                            locals: { message: message }
        })
    }
})

alertFunc中的日志从不显示。

我也尝试将controllerAs : 'ctrl'放入$mdDialog.show。然后我将alertFunc声明更改为this.alertFunc = function...并更改了ng-click='ctrl.alertFunc'。然而,这并没有奏效。

有人可以帮我解决问题。

谢谢

1 个答案:

答案 0 :(得分:0)

应该是ng-click="alertFunc()"而不是ng-click="alertFunc"。 2个小时的努力和一个愚蠢的括号。

令程序员无法获得多么无知。