我在Django应用程序中使用Dart。需要将配置参数传递给Dart。如何将值传递给main()?此时我正在考虑在网页中创建隐藏元素并使用查询来获取值。有更好的方法吗?
答案 0 :(得分:6)
听起来你正在构建一个浏览器应用程序?
(顺便说一句,您可以将new Options().arguments
用于命令行应用程序。效果很好,但显然浏览器应用程序中没有命令行:)
(其次,main()
不接受参数,所以我们必须找到另一种方法。)
好的,对于浏览器应用,我可能会尝试做的是在<script>
标记内的页面中嵌入一些JSON。然后,使用查询,找到该元素,解析内容,然后你就可以了。
在您的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']);
}
希望有所帮助!
答案 1 :(得分:0)
使用Options作为seen in this answer:
#!/usr/bin/env dart
main() {
print("Args: " + new Options().arguments);
}
答案 2 :(得分:0)
Options
不再可用。
现在主函数接受参数了。
main(List<String> args) {
print(args);
}
如果您来自python,c,c ++。期望args[0]
将给出脚本的路径。
但是在dart参数中,仅是参数。
要获取脚本的路径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");
}