如何在dart中创建动态变量

时间:2016-01-14 09:59:48

标签: dart

我正在将java脚本移动到dart,在java脚本中我创建了像

这样的动态变量
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

我怎么能用飞镖做到这一点?

1 个答案:

答案 0 :(得分:5)

在Dart中$tag1=$data['courses_fee']; $tags = explode(',', $tag1); foreach($tags as $vals) { echo $vals."\n"; }?> Window的类型)是一个类。您无法动态地向Dart类添加属性。 window可以使用window["text" + pageNumber] = 123;。 JS中的对象表示与地图非常相似,因此可以在那里工作。 如果另一个类实现了Map运算符,您也可以在该类的实例上调用它,但它仍然不会添加属性。实际上它的作用取决于[]运算符的实现。

Dart可能有不同的方式来达到你想要的效果,但是你并没有添加你试图解决的实际问题的细节。

您可以在Dart中使用常规全局变量,如中所述 Global Variables in Dart

对于您的用例,您可以通过这种方式创建全局Map变量

[]

创建一个存储带字符串名称的整数值的映射。

使用final Map<String,int> myGlobals = <String,int>{}; 设置值并使用myGlobals['someName'] = 123;读取它们。

如果您需要设置一个可用于您可能使用的JS库的全局值,您可以使用

print(myGlobals['someName']);

DartPad上试用。

提示:

import 'dart:js'; import 'dart:html'; main() { int pagenumber = 5; context['Window']['text$pagenumber'] = 123; window.alert('${context['Window']['text$pagenumber']}'); } 不是字符串时,

"text" + pageNumber无法正常工作。 在Dart中,您无法添加字符串和数字 pageNumber会有效,但"text" + pageNumber.toString()是一种更为有效的方式。在字符串插值中,为您自动调用'text$pagenumber'

另见Dart js-interop not working if .dart file isn't included