我正在将java脚本移动到dart,在java脚本中我创建了动态变量
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);
Run Code Online (Sandbox Code Playgroud)
我怎么能用飞镖做到这一点?
在Dart Window(类型window)是一个类.您无法动态地向Dart类添加属性.
window["text" + pageNumber] = 123;会使用Map.JS中的对象表示与地图非常相似,因此可以在那里工作.如果另一个类实现了[]运算符,您也可以在该类的实例上调用它,但它仍然不会添加属性.它实际上只是取决于[]运营商的实施.
Dart可能有不同的方法来实现您想要的效果,但您没有添加有关您尝试解决的实际问题的详细信息.
您可以在Dart中使用常规全局变量,如Dart中的 全局变量中所述.
对于您的用例,您可以通过这种方式创建全局Map变量
final Map<String,int> myGlobals = <String,int>{};
Run Code Online (Sandbox Code Playgroud)
创建一个存储带字符串名称的整数值的映射.
设置值myGlobals['someName'] = 123;并使用它们读取它们print(myGlobals['someName']);.
如果需要设置一个也可用于JS库的全局值,可以使用dart-js-interop
import 'dart:js';
import 'dart:html';
main() {
int pagenumber = 5;
context['Window']['text$pagenumber'] = 123;
window.alert('${context['Window']['text$pagenumber']}');
}
Run Code Online (Sandbox Code Playgroud)
在DartPad上试试吧.
暗示:
"text" + pageNumber不是pageNumber字符串时不起作用.在Dart中,您无法添加字符串和数字.
"text" + pageNumber.toString()会工作,但这'text$pagenumber'是一个更愚蠢的方式来做到这一点.在字符串插值中toString()会自动为您调用.
如果未包含.dart文件,请参阅Dart js-interop不工作.
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |