DART nodes.add()添加元素的多个副本

时间:2013-01-10 16:51:31

标签: dart

我有一个我想要显示缩略图的项目列表。但是,如果任何缩略图记录为缺失,我想显示“缺失图像”图像。列表可能很长,所以我想在需要时重复使用相同的“缺失图像”。

但是,下面的测试代码只会导致图像的一个副本 - 最后添加的一个副本。我的问题:我怎样才能多次添加一个Element而不必每次都做一个new()?

ImageElement img = new ImageElement();
img.src= "http://myserver/missing.png";  
...
div.nodes.add(img);    
div.appendText('11111');
div.nodes.add(img);    
div.appendText('22222');
div.nodes.add(img);    
div.appendText('33333');

1 个答案:

答案 0 :(得分:2)

使用该代码,您不会向div元素添加新图像。 div.nodes.add(img)实际上将img添加为div元素下的最后一个节点(nodes.add(node)在引擎盖下使用Node.appendChild。)

要使其有效,您必须为每个ImageElement创建一个新的div.nodes.add(img)。您还可以使用Node.clone()创建新的ImageElement

在您的情况下,如下所示:

final img = new ImageElement(src:"http://myserver/missing.png");
div.nodes.add(img.clone(false));
div.appendText('11111');
div.nodes.add(img.clone(false));
div.appendText('22222');
div.nodes.add(img.clone(false));
div.appendText('33333');