如何在Dart中制作window.prompt?

use*_*885 5 dart dart-html dart-js-interop

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

有人能帮助我吗?


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

var password=context.callMethod('prompt',['Password','']);
Run Code Online (Sandbox Code Playgroud)

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


更新2:因为在飞镖规范的提示对话框中的不足,飞镖API和飞镖图书馆这里是谷歌代码问题跟踪的错误,让我们出演的bug,如果你认为提示是spec重要,或者如果你对此有何评论有任何其他的想法,如何以现代的方式做(你可以尝试提出像内置的模态对话框的例子).或者只是分享它,如果您认为提示/模态对话框实现也应该在现代编程语言中...


更新3:现在我们正在讨论新的模态警报,确认和提示对话框,这些对话框可以在Polymer.dart库中.是谷歌代码问题跟踪器的增强,让我们出演的bug,如果你是该对话框的现代模式的形式,或讨论,如果你知道如何做的更好?

Gre*_*owe 5

你可以使用js interop来做到这一点:

import 'dart:js';

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

我不知道为什么dart中没有这个:html.也许提出错误.

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

更新:

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