【问题标题】:mdDialog promise is not resolved when I hit Enter当我按 Enter 时,mdDialog 承诺未解决
【发布时间】:2015-11-12 14:39:51
【问题描述】:

我正在使用放置在表单内并包含提交按钮的 md-dialog 指令:

<form ng-submit="save()">
    <md-dialog aria-label="Title" ng-cloak>
        ...
        <md-dialog-actions layout="row">
            <span flex></span>
            <md-button class="md-raised md-primary" type="submit">Save</md-button>
            <md-button class="md-raised md-primary" type="button">Cancel</md-button>
        </md-dialog-actions>
    </md-dialog>
</form>

这就是我显示对话框的方式。代码放在我的AppCtrl中:

    $scope.showDialog = function () {
        $mdDialog.show({
            controller: 'PopupCtrl',
            templateUrl: 'Popup',
            clickOutsideToClose: true
        })
        .then(function (args) {
             console.log(args); //this line is not called when I hit Enter on my keyboard
        });
    };

PopupCtrl 里面有 save() 方法:

    $scope.save = function () {
        $mdDialog.hide('It works!');
    };

当我用鼠标单击“保存”按钮时,一切正常,这意味着对话框已隐藏,我可以在控制台输出中看到消息。

问题是:当我按Enter时,对话框被隐藏,但没有调用将消息输出到控制台的行。

注意:在这两种情况下都会调用 PopupCtrl 中的 save() 方法。

更新:这是演示:Plunker

请指教。谢谢。

【问题讨论】:

  • 是表单内元素的焦点吗?
  • 是的。焦点在第一个文本框中。我输入一个值,然后按 Enter。

标签: angularjs material-design


【解决方案1】:

尝试将&lt;form ng-submit="save()"&gt; 嵌套在&lt;div class="md-dialog-content"&gt; 中(而不是上面有多个级别的那个),并在“保存”&lt;md-button&gt; 中使用ng-click="save()" 而不是type="submit"

查看此演示:Plunker

【讨论】:

    猜你喜欢
    • 2020-03-16
    • 2020-10-22
    • 2014-12-15
    • 1970-01-01
    • 2022-01-26
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多