2

我想知道是否可以通过模板字符串表示法将函数绑定到 html 模板。

所以如果我这样做

 let dynTamp = `<div> ${device.name} </div>`;

它工作得很好,但这

let dynTamp = `<button (click)="${someFunction}"></button>`;

不将该函数绑定到单击事件。我在这里错过了什么吗?

背景:我正在使用 LeafletJs 并在地图上动态创建标记,其弹出框应包含按钮:

this.devices.forEach(device => {

        L.marker([Number(device.map_x), Number(device.map_y)], {icon: this.icon})
          .bindPopup(`<h2> ${device.name}</h2>
                  <button (click)="${doThis}"></button>
                  <button (click)="${doThat}"></button>`)
          .addTo(this.map)           
    }
4

2 回答 2

2

这应该是正确的语法:

let dynTamp = `<button (click)="someFunction()"></button>`;

我分享了一个如何使用模板字符串的示例:查看示例

于 2018-08-13T15:57:44.250 回答
0

请用这个替换

let dynTamp = `<button (click)="someFunction()"></button>`;

代替

let dynTamp = `<button (click)="${someFunction}"></button>`;

角度表达式不是模板字符串。这是一个 Angular 表达式。单击按钮时调用 someFunction() 的语法是(click)="someFunction()".

于 2018-08-13T16:04:03.087 回答