如何通过子项本身中的删除按钮删除子项组件

st_clair_clarke

我有一个包含标签,选择和删除按钮元素的电子邮件组件(email-tag.html)。

email-tag.html组件托管在其父email-view-tag.html中。email-view-tag包含一个add-email-button,它在每次单击时将email-tag元素添加到DOM。

单击删除按钮时,我在删除添加的电子邮件标签组件方面需要帮助。它是包含应删除的删除按钮的组件。

这两个组件如下所示:

email-tag.html

 <!DOCTYPE html>

<polymer-element name='email-tag'>
  <template>
   <style>

   .main-flex-container
   {
     display:flex;
     flex-flow:row wrap;
     align-content:flex-start;
   }

    .col
    {
      display:flex;
      flex-flow:column;
      align-content:flex-start;
      flex-grow:1;
    }
   </style>

   <div id='email' class='main-flex-container'>
      <section id='col1' class='col'>
        <input id=emailTxt
               type='text'
               list='_emails'
               value='{{webContact.homeEmail}}'>

        <datalist id='_emails'>
            <template repeat='{{email in emails}}'>
              <option value='{{email}}'>{{email}}</option>
            </template>
        </datalist>
      </section>

      <section id='col2' class='col'>
        <button id='delete-email-btn' type='button' on-click='{{deletePhone}}'>Delete</button>
      </section>
    </div>
   </template>

   <script type="application/dart">

    import 'package:polymer/polymer.dart' show CustomTag, PolymerElement;
    import 'dart:html' show Event, Node;

    @CustomTag( 'email-tag' )
    class EmailElement extends PolymerElement
    {
      //@observable
      EmailElement.created() : super.created();
      List<String> emails = [   '', 'Home', 'Personal', 'Private', 'Work', ];

      void deletePhone( Event e, var detail, Node target)
      {
        //shadowRoot.querySelector('#new-phone' ).remove();
        //print( 'Current row deleted' );
      }
    }
  </script>
</polymer-element>

email-view-tag.html

  <!DOCTYPE html>

  <link rel="import" href="email-tag.html">

  <polymer-element name='email-view-tag'>
    <template>
     <style>

     .main-flex-container
     {
       display:flex;
       flex-flow:row wrap;
       align-content:flex-start;
     }

      .col
      {
        display:flex;
        flex-flow:column;
        align-content:flex-start;
        flex-grow:1;
      }
     </style>

      <div id='email-view' class='main-flex-container'>
        <section id='row0'  >
          <button id='add-email-btn' type='button' on-click='{{addPhone}}'>Add Phone</button>
        </section >

        <section id='rows' class='col'>
       <!--    <epimss-phone-header-tag id='col1' class='col'></epimss-phone-header-tag> -->
          </section>
      </div>
     </template>

     <script type="application/dart">
      import 'package:polymer/polymer.dart' show CustomTag, PolymerElement;
      import 'dart:html' show Event, Node, Element;

      @CustomTag( 'email-view-tag' )
      class EmailViewElement extends PolymerElement
      {
        //@observable
        EmailViewElement.created() : super.created();

        void addPhone( Event e, var detail, Node target )
        {
          $[ 'rows' ].children.add( new Element.tag( 'email-tag' ) );
        }

        @override
        void attached() {
          super.attached();

          $[ 'add-email-btn' ].click();
        }
      }
    </script>
  </polymer-element>

该应用程序确实能够正常执行,单击添加按钮确实会添加电子邮件组件。删除按钮不起作用-我在这里寻求帮助。

谢谢

谢琳·火

子组件<email-tag>不应删除自己。相反,它应该email-view-tag通过调度自定义事件将职责委派给父组件

这是用于从中调度自定义事件的代码deletePhone

void deletePhone( Event e, var detail, Node target){
  dispatchEvent(new CustomEvent('notneeded'));
}

然后,在父项中<custom-view>,更改添加<email-tag>代码,如下所示:

void addPhone( Event e, var detail, Node target ) {
  $['rows'].children.add( new Element.tag('email-tag'));
  $['rows'].on["notneeded"].listen((Event e) {
    (e.target as Element).remove();
  });
}

另外,我将更改名称deletePhone,因为该方法不再删除记录,而只是通知父级不需要它。称其为“不需要”或类似名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除 QTreeWidgetItem 的子项

来自分类Dev

从 StackPanel 中删除子项

来自分类Dev

如何使用删除按钮从 Firebase 数据库中删除子项?

来自分类Dev

Android从RecyclerView中删除子项

来自分类Dev

从 Json 对象中删除子项

来自分类Dev

如何删除存储桶中对象的所有“子项”?

来自分类Dev

如何根据名称从数组中删除特定子项

来自分类Dev

如何在GnuPG中删除Linux上的子项?

来自分类Dev

如何删除特定 RowDefinition 中的网格子项?

来自分类Dev

添加和删除子项

来自分类Dev

删除 JSON 子项

来自分类Dev

删除对象数组中的所有子项

来自分类Dev

Arangodb从文档中删除子项目

来自分类Dev

以角度从数组中删除空子项

来自分类Dev

删除后如何删除jQuery可拖动项的子项

来自分类Dev

删除子项并将其从数组中删除时,键入错误

来自分类Dev

通过级联删除子项时如何使父项记录数据可用

来自分类Dev

从QVBoxLayout删除所有子项

来自分类Dev

SQL删除重复的父子项

来自分类Dev

Hibernate无法删除子项(MySQLIntegrityConstraintViolationException)

来自分类Dev

删除从其子项引用的 UIView?

来自分类Dev

从表A中删除,其中表A中没有子项,表B中没有子项

来自分类Dev

如何无误删除子项子项必须为非空

来自分类Dev

JPA删除子项删除父项

来自分类Dev

在子项中挂载父组件

来自分类Dev

如果我在初始化之外定义了如何在ccTouchEnded中删除子项

来自分类Dev

如何使用jQuery删除整个基于div的单击子项?

来自分类Dev

mongo深度嵌套数组中的mongo子项删除/拉出

来自分类Dev

列出和删除C#中的注册表子项