javascript - 动态组件点击事件绑定(bind)Angular2

标签 javascript angular

在我的项目中,我动态加载一些元素。但我无法为这些元素生成点击事件。

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  ");
    }
}

附:我尝试过使用动态组件加载器,但如果所有 html 仅在模板中,它就可以工作。

最佳答案

Angular2 不会处理使用 [innerHTML]="..." 或类似方式动态添加的 HTML (click) 只是被忽略并添加为-是。

如果可能,将 HTML 包装在组件中并使用 ViewContainerRef.createComponent() 代替。有关示例,请参阅 Angular 2 dynamic tabs with user-click chosen components

关于javascript - 动态组件点击事件绑定(bind)Angular2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38140134/

相关文章:

javascript - 如何使用另一个 json 的顺序对 json 对象进行排序

javascript - 如何在没有 Array.prototype.reverse 的情况下反转 JavaScript 中的数组?

javascript - 在 Vue 中添加 "close modal"按钮的更好方法

angular - Angular 7 中的不安全:数据:图像/jpeg;base64, net::ERR_UNKNOWN_URL_SCHEME

javascript - 从 Object.freeze 获取随机对象

javascript - fullcalendar eventClick .modal ("show")未打开模态

javascript - AppendTo 但每个新追加都是唯一的但仍然使用相同的 jquery

http - 解析器错误 : Unexpected end of expression: {{value? }} | Angular 2 typescript

angular - ASP.NET核心: Windows Authentication with OPTIONS exception (CORS preflight)

每次按键时的 Angular 2 更改事件