我在DART中将其设为OptionElement,这很好:
var source = new SelectElement()
..children.add(new OptionElement(value: 'vCode', data:'myVendor Name'));
我想将我的供应商列表作为来自服务器的回调,然后将其放入select选项,以便用户可以选择供应商代码/名称,我将从服务器返回的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']));
}
是吗? 感谢
答案 0 :(得分:1)
这不起作用
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(新的OptionElement(值:“$ {vendor ['code']}”,数据:“$ {vendor ['name']}”));
当$
出现一个简单的标识符后,您可以省略花括号,如果它是一个表达式,则需要添加它们。
下面的代码应该可以正常工作。
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']));
}