我正在添加聚合物元素。我想在其自身的图像上单击以删除该元素(自己)。按照封装,我将不得不让父级删除子级。但是这也需要为父对象生成聚合物元素(我在这里吗?)。未为聚合物element定义的children.add我该如何做,我打算在将聚合物元素添加到表单之前进行一些检查。

已经阅读:
How to remove a child component with a delete button in the child itself

How do I fire a custom event from Polymer Dart?

How do you dispatch and listen for custom events in Polymer?

我如何通过调度事件?

init-item.html

<polymer-element name="init-item" >
  <template>
    <input type="image" src="button_minus_red.gif" on-click="{{remove}}" width = "15" height ="15">
    {{Name}}<br>
  </template>
  <script type="application/dart" src="init-item.dart"></script>
</polymer-element>

初始化项目
@HtmlImport('init-item.html')
import 'dart:html';
import 'dart:async';
import 'package:polymer/polymer.dart';
@CustomTag('init-item')
class PItem extends PolymerElement{
  @observable String Name='hello';
  void remove(){
    Name='';

  }

因此,当前在单击图像时,名称属性被重置。但这仅在main.dart生成的后续click事件上发生。这是由于数据绑定(bind)。我如何启动双向数据绑定(bind)。

main.html(尽管有建议,但添加了聚合物标签而不是。无法弄清楚)
...
<form  id="youritems">
</form>
...

聚合物项目已添加到上述标签。

主镖
...
main() async{
.. initPolymer().then((_) {});
}
..
...{..
var input = new InputElement(type:"image");
input.onClick.listen((p){
            p.preventDefault();
            populateYourPlayers(teams[i]);
          });
}
void populateItems(String name){
  Polymer.onReady.then((_) {
    var pl = new Element.tag('player-item');
    pl.playerName = name;
    yourPlayer.children.add(pl);
    });
}
..

最佳答案

如果将单击处理程序从remove重命名为removeItem,则只需在处理程序中调用remove()即可。

<input type="image" src="button_minus_red.gif" on-click="{{removeItem}}" width = "15" height ="15">

void removeItem(){
  Name='';
  remove(); // removes the init-item (self)
}
remove是所有元素上的现有方法。如果您将自己的方法命名为remove,则将覆盖默认的remove方法,并且不再可以调用原始方法(除非在您的元素内使用super.remove();)

关于dart - 去除 Dart 中的聚合物元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29577881/

10-10 22:19