dart - 如何在 Dart 中制作 window.prompt?

标签 dart dart-html dart-js-interop

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

有人可以帮助我吗?

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

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

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

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

更新 3:现在我们正在讨论新的模态警报、确认和提示对话框,它们可以在 Polymer.dart 库中。 Here 是对 Google 代码问题跟踪器的增强,所以让我们 明星 错误,如果您是该对话框的现代模态形式,或者讨论,如果您知道如何做得更好...

最佳答案

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

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 中删除,以阻止其使用,因为它会阻止脚本的执行。

关于dart - 如何在 Dart 中制作 window.prompt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058426/

相关文章:

flutter - 如何在 Dart 中传播列表?

dom - 如何管理DOM元素依赖性

javascript - 从 Dart 中的 JavaScript 对象获取任意属性

dart - 使用 Dart 中的 resumable.js

flutter - 如何在 Dart 中的 List.forEach() 中异步/等待

flutter - Dart 中 Thread、Isolate 和 Process 的区别

flutter - 在 Flutter 中为用户自动将可拖动对象移动到拖动目标

internet-explorer - Dart:在IE11中提交表单时,preventDefault()在异步回调中不起作用

dart - 将 HTML 安全地注入(inject)到 Polymer 模板中

dart - js-interop 测试 javascript 对象是否具有属性