【问题标题】:ngClick on mdDialog's action button not triggering controller functionngClick mdDialog 的操作按钮不触发控制器功能
【发布时间】:2017-08-31 23:19:44
【问题描述】:

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

消息数据正在正确传递。但是由于某种原因,确定按钮没有触发对话框控制器的功能。

这是我的代码

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'。但是,这也不起作用。

谁能帮我解决问题。

谢谢

【问题讨论】:

  • 你能把这个放在一个plunker吗?
  • 嗨,迈克...我把它放在 plunker 中,我突然意识到我在 ng-click 中缺少一个 ()。现在正在工作。谢谢你的评论。没有它就不会发生。 2 小时的头脑风暴就这么多。

标签: angularjs angularjs-ng-click mddialog


【解决方案1】:

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

程序员的无知程度令人惊讶。

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2019-06-27
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多