6

我在 Django 应用程序中使用 Dart。有一些配置参数需要传递给 Dart。如何将值传递给 main()?此时我正在考虑在网页中创建隐藏元素并使用查询来获取值。有更好的方法吗?

4

3 回答 3

6

听起来您正在构建浏览器应用程序?

(顺便说一句,您可以new Options().arguments用于命令行应用程序。效果很好,但显然浏览器应用程序中没有命令行 :)

(第二,main()不接受参数,所以我们必须找到另一种方式。)

好的,对于浏览器应用程序,我可能会尝试将一些 JSON 嵌入到<script>标签内的页面中。然后,使用查询,找到那个元素,解析内容,你就可以开始了。

在您的 HTML 中:

<script id="config">
  {"environment":"test"}
</script>

在你的 Dart 文件中:

import 'dart:html';
import 'dart:json' as json;

void main() {
  var config = json.parse(query("#config").innerHtml);

  print(config['environment']);
}

希望有帮助!

于 2013-02-10T06:55:02.753 回答
1

Options不再是一种选择。

现在主函数接受参数。

main(List<String> args) {
   print(args);
}

如果你来自 python、c、c++。期望args[0]会给出脚本的路径。

但在 dart 中,args 只是参数。

Platform.script可以使用对象来获取脚本的路径Uri。然后Uri.path将文件路径作为字符串获取。

一个例子:

import 'dart:io';

main(List<String> args) {
  var dir = Directory.current.path;
  var p = Platform.script.path;
  print("$p called with $args in $dir");
}
于 2019-08-19T19:58:54.900 回答
0

使用此答案中看到的选项

#!/usr/bin/env dart

main() {
    print("Args: " + new Options().arguments);
}
于 2013-02-10T06:46:39.013 回答