5

我使用 Dart 制作了一些应用程序,我有一个简单的问题。我没有在 dart:html 库中找到提示对话框。我发现只有警报和确认对话调用,但这不是我需要的。我已经尝试了 Dart api 的其他一些可能性,但没有办法做到这一点。我认为应该有模态对话框或 Dart 自己的提示对话框之类的东西。我知道,模态在这里,但它只在弹出窗口中加载另一个文件。

有人可以帮助我吗?


更新:实际上,我找到了一种解决方案。它是 dart:js 库中 JavaScript 的模拟:

var password=context.callMethod('prompt',['Password','']);

这是一个很好的解决方案,但我认为,一定有比模拟 JavaScript 更好的方法。


更新 2:由于 Dart 规范中提示对话框的不足,这里的 Dart API 和 Dart 库是 Google 代码问题跟踪器上的一个错误,所以让我们给这个错误加标,如果你认为提示在规范中很重要,或者如果你评论有任何其他想法,如何以现代方式做到这一点(例如,您可以尝试提出诸如内置模式对话框之类的东西)。或者,如果您认为提示/模态对话框实现也应该使用现代编程语言,请分享它......


更新 3:现在我们正在讨论新的模态警报、确认和提示对话框,它们可能位于 Polymer.dart 库中。是 Google 代码问题跟踪器的增强功能,所以让我们为这个 bug 加注标,如果您喜欢该对话框的现代模式形式,或者讨论一下,如果您知道如何做得更好......

4

1 回答 1

6

您可以使用 js 互操作来执行此操作:

import 'dart:js';

main() {
  var result = context.callMethod('prompt', ['Hello from Dart!']);
  print(result);
}

我不确定为什么这在 dart:html 中不可用。也许提交一个错误

理想情况下,您可以使用另一个 UI 组件库来执行此操作,而不是使用 window.prompt()。像这样的东西。但是现在还很早,我不确定是否有一个好的库可用。

更新:

window.prompt() 已被有意从 dart:html 中删除,以阻止其使用,因为它会阻止脚本的执行。

于 2013-11-19T05:09:07.973 回答