如何在Dart中制作window.prompt?

时间:2013-11-18 21:35:51

标签: dart dart-html dart-js-interop

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

有人能帮助我吗?


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

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

这是一个很好的解决方案,但我认为,必须有比模拟JavaScript更好的东西。


更新2 :由于Dart规范中的提示对话框不足,Dart API和Dart库 here 是Google代码问题的错误跟踪器,所以让我们明星这个错误,如果您认为提示在规范或评论中很重要,如果您有任何其他想法,如何以现代方式执行(您可以尝试提出类似内置的东西) -in模态对话框例如)。或者只是分享它,如果您认为提示/模态对话框实现也应该在现代编程语言中......


更新3:现在我们正在讨论新的模式警报,确认和提示对话框,这些对话框可能位于Polymer.dart库中。 Here 是Google代码问题跟踪器的增强功能,所以如果你是针对该对话框的现代模态形式,那么让我们明星这个bug,或讨论,如果你知道怎么做得更好......

1 个答案:

答案 0 :(得分:5)

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

import 'dart:js';

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

我不确定为什么dart中没有这个:html。也许提交bug

理想情况下,您可以使用其他UI组件库来执行此操作,而不是使用window.prompt()。像these这样的东西。但它还处于早期阶段,我不确定是否还有一个好的库。

<强>更新

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