【发布时间】: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。