簡體   English   中英

動態組件單擊事件綁定Angular2

[英]Dynamic Component Click Event Binding Angular2

在我的項目中,我正在動態加載一些元素。但是我無法為這些元素生成點擊事件。

import {Component, DynamicComponentLoader, Injector} from 'angular2/core';


@Component({
  selector: 'my-app',
  providers: [],
  template: `
  <button (click)="form()">
    View Form
  </button>
    <div id="form" [innerHTML]="">
      Welcome..! Here form component will be loaded.

    </div>
  `,
  directives: []
})
export class App {
    private strForMarkets = "";
    private sbForMarkets: Array<string> = [];
  constructor(public dcl:DynamicComponentLoader, public _injector:Injector) {
  }
  form() {
      var s = ["a", "s", "d", "p"];
      this.sbForMarkets.push("<div><ul>")
      for (var index = 0; index < s.length; index++) {
          var element = s[index];
          this.sbForMarkets.push("<li class='OH liDataLeftFilterMarketsContainer'>");
          this.sbForMarkets.push("<div class='FL sprite_icon expand-icon-market'></div>");
          this.sbForMarkets.push("<div class='expand-text-div CP FT14 LH15' (click)='chill($event)' >" + element + "</div>");
          this.sbForMarkets.push("</li>");
      }
      this.sbForMarkets.push("</ul></div>");
      this.strForMarkets = this.sbForMarkets.join("");
  }

  chill() {
      console.log("Dude... Chill  ");
    }
}

ps我嘗試過使用動態組件加載器,但只有模板中的所有html才有效。

Angular2不處理使用[innerHTML]="..."動態添加的HTML或類似的任何方式(click)被忽略並按原樣添加。

如果可能,將HTML包裝在組件中並使用ViewContainerRef.createComponent()代替。 有關示例,請參閱Angular 2動態選項卡,其中包含用戶單擊所選組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM