我在DART中将此作为OptionElement进行了设置,这很好:
var source = new SelectElement()
..children.add(new OptionElement(value: 'vCode', data:'myVendor Name'));
我想将我的供应商列表作为从服务器上的回叫,然后将其放在选择选项中,以便用户可以选择供应商代码/名称,我从服务器返回的Map为
{"code":"vCode","name":"myVendor Name"}
,并希望使用循环,我尝试了以下操作,但没有成功:var vendor = <Map>[];
for(int i=0;i<=number_of_vendors;i++){
var source = new SelectElement()
..children.add(new OptionElement(value: vendor[i]['code'], data: vendor[i]['name']));
}
可以吗
谢谢
最佳答案
这行不通
var source = new SelectElement()
..children.add(new OptionElement(value: "$vendor['code']", data:"$vendor['name']"));
你可以做
var source = new SelectElement()
..children.add(new OptionElement(value:vendor ['code'],data:vendor ['name']));;
如果
vendor['code']
和vendor['name']
返回字符串或var source = new SelectElement()
..children.add(new OptionElement(value:“$ {vendor ['code']}”,data:“$ {vendor ['name']}”)));;
当
$
之后是一个简单的标识符时,您可以忽略花括号,如果它是一个表达式,则需要添加它们。更新-@Hasan A Yousef提供的实际使用的代码
下面的代码应该可以正常工作。
var vendors = <Map>[];
然后
vendors=[{"code":"vCode1","name":"myVendor Name1"},{"code":"vCode2","name":"myVendor Name2"}];
要么
vendors.add({"code":"vCode 1","name":"vName 1"});
vendors.add({"code":"vCode 2","name":"vName 2"});
vendors.add({"code":"vCode 3","name":"vName 3"});
vendors.add({"code":"vCode 4","name":"vName 4"});
其次是:
for(int i=0;i<vendors.length;i++){
source..children.add(new OptionElement(value: vendors[i]['code'], data: vendors[i]['name']));
}
或通过:
for(Map vendor in vendors){
source..children.add(new OptionElement(value: vendor['code'], data: vendor['name']));
}
关于dart - DART将参数传递给SelectElement/OptionElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25711498/