DART将参数传递给SelectElement / OptionElement

时间:2014-09-07 14:53:15

标签: dart dart-html

我在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']));
}

是吗? 感谢

1 个答案:

答案 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']}”));

$出现一个简单的标识符后,您可以省略花括号,如果它是一个表达式,则需要添加它们。

更新 - @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']));
  }