我正在将java脚本移动到dart,在java脚本中我创建了像
这样的动态变量window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);
我怎么能用飞镖做到这一点?
答案 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库的全局值,您可以使用dart-js-interop
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'
。