为什么传单弹出窗口中的按钮不起作用?

2024-01-10

我有一张带有很多标记的传单地图,当单击它们时,会出现一些带有编辑和删除按钮的信息!然而,出于某种原因,传单似乎掩盖了这些按钮,无论哪种方式,它们根本不起作用。

这是我的地图组件,带有标记和弹出窗口:

refresh() {
    this.artworkService.retrieveAll().then((artworkList) => {
      this.artworkList = artworkList;
      for (let artwork of this.artworkList) {
        const popupOptions = { className: "customPopup" };
       const popupContent =
          "<span class='customPopup'><b>" +
          artwork.name +
          "</b></span>" +
          "<br/>" +
          artwork.filename +
           "<br/>" +
          artwork.firstname + " " + artwork.lastname +
          "<br/>" +
          artwork.streetname + artwork.streetnumber + ", " + artwork.zipcode +
          "<br/>" +
          "<button (click)='editArtwork()'><i class='fa fa-edit mr-1></i></button>" + "<i class='fa fa-trash ml-1 (click)='deleteArtwork()'></i>";
    console.log(artwork.name);
        L.marker([artwork.latitude, artwork.longitude], this.markerIcon)
          .addTo(this.map)
          .bindPopup(popupContent, popupOptions);
      }
   });
}

editArtwork() {
  alert("editing");
}

deleteArtwork() {
  alert("deleteing");
}

我单击按钮,但没有任何反应,控制台中也没有显示任何内容。


您的按钮不起作用,因为您正在尝试调用实际上驻留在字符串中的方法

 "<button (click)='editArtwork()'><i class='fa fa-edit mr-1></i></button>" + "<i class='fa fa-trash ml-1 (click)='deleteArtwork()'></i>";

是分配给变量而不是 html 的字符串,这就是您的方法调用不起作用的原因。

不确定这是否是最好的方法,但一种方法是: 1.为每个按钮分配一个唯一的类 2. 将 on("popupopen") 事件处理程序与 Angular 结合使用elementRef就像下面的例子一样:

const popupOptions = {
  className: "customPopup"
};
const _this = this;

for (let artwork of this.artworkList) {
  const popupInfo = `
  ${artwork.name} <br> ${
    artwork.filename
  } <br> <button class="edit">Edit</button>
  <br> <button class="delete">Delete</button>
  `;
  L.marker([artwork.latitude, artwork.longitude], this.markerIcon)
    .addTo(this.map)
    .bindPopup(popupInfo, popupOptions)
    .on("popupopen", () => {
      _this.elementRef.nativeElement
        .querySelector(".edit")
        .addEventListener("click", e => {
          _this.editArtwork();
        });
    })
    .on("popupopen", () => {
      _this.elementRef.nativeElement
        .querySelector(".delete")
        .addEventListener("click", e => {
          _this.deleteArtwork();
        });
    });
}



editArtwork() {
  alert("editing");
}

deleteArtwork() {
  alert("deleting");
}

Demo https://codesandbox.io/s/l3l468y5w7

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么传单弹出窗口中的按钮不起作用? 的相关文章

随机推荐

  • NumPy 数组中元素的索引[重复]

    这个问题在这里已经有答案了 在Python中 我们可以使用以下方法获取数组中值的索引 index 但是对于 NumPy 数组 当我尝试执行以下操作时 decoding index i I get AttributeError numpy n
  • 使用 Java 在网页上查找链接

    使用Java将网页的源代码存储在字符串中 我想提取源代码中的所有url并输出它们 我对正则表达式之类的东西很糟糕 甚至不知道如何解决这个问题 任何帮助将不胜感激 不要使用正则表达式 https stackoverflow com quest
  • 将 jLabel 移动到 jPanel 中的不同位置(类似 Pacman 的游戏)

    我正在制作像吃豆人这样的游戏 到目前为止我才刚刚从网格开始 我启动了网格 但我需要弄清楚如何将某些内容移动到网格中的不同位置 以便当用户单击或我的幽灵移动时 它将显示在屏幕上 我怎样才能让它动起来 我尝试了很多不同的方法 但没有一个对我有用
  • 安装 RavenDb Embedded 时出现 Nuget 依赖错误

    我正在尝试在 ASP NET MVC 5 应用程序中安装 RavenDB Embedded 但出现以下依赖项错误 PM gt Install Package RavenDB Embedded Attempting to resolve de
  • 由于缺少服务结构包,不会添加依赖项

    启动一个新的空 NET Core 2 类库 我尝试使用 nuget 添加任何依赖项 但出现此错误 错误本地源 C Program Files Microsoft SDKs Service Fabric packages 不存在 但服务结构应
  • 在嵌套模型轨道中传递数组隐藏字段

    我认为有以下代码 参数在控制台中传递 Parameters authenticity token gt LJ ZME2lHZ7VwCDgPKX6OFe326fXSXo5UB4M0cPwbCE esthour gt rfp id gt 6 e
  • 在 ListView 顶部添加“正在加载”图像

    我想添加一个 正在加载 Image在我的顶部ListView当所有项目都在加载时 如果有很多项目正在加载 我仍然希望有一个良好的用户体验 所以我想要一个浮动的Image 动画 GIF 在我的上面ListView 如何解决这个问题 一旦有了浮
  • 在 Android Java 应用程序中使用 Kotlin AAR 时出现 java.lang.NoClassDefFoundError

    我必须在 Kotlin 中创建一个库 aar 并且必须在使用 Java 制作的 Android 应用程序中使用它 Kotlin 库有一个带有伴随函数的类 可以在 Java 应用程序中静态使用 当我在 Java 的 Android 应用程序中
  • data.table 1.8.1.:“DT1 = DT2”与 DT1 = copy(DT2) 不同吗?

    我注意到使用不同的赋值运算符时 data table 中存在一些不一致 对我来说不一致 的行为 我不得不承认我从来没有完全理解 和copy 之间的区别 所以也许我们可以在这里阐明一些观点 如果您使用 或 请执行以下命令 你就会明白我的意思
  • C# 中集中使用关键字

    有没有办法在 C 中制作单个 头 类型文件 在 C 中 您有类似 Mainheader h 的内容 其中包含您的所有包含内容 有没有一种方法可以对 C 执行类似的操作 其中您有一个包含所有 using 关键字的文件 现在我有很多使用 例如
  • MVC,从页面中的多个部分视图传回值

    当我尝试从包含相同部分视图两次的页面传回值时 我遇到了问题 我的类定义如下 public class Account IEntity public decimal CurrentBalance get set public List
  • 将 C# 委托的调用约定更改为 CDECL

    我在使用DotNet1 1时C 也遇到过这个问题 问题是这样的 我有一个非托管 dll 它有一个接受函数指针 以及其他参数 的函数 当我在 C 代码中声明 DLLImport 时 我传递了一个委托 但是 C 中的代表有stdcall调用约定
  • PowerShell - 删除文本文件的所有行,直到找到特定字符串

    我目前有一个输出日志文件 有点混乱并且增长很快 这是一个授予邮箱权限的大型脚本的调试输出 我基本上只想删除文件中的每一行 直到找到 7 天前日期的第一次迭代 到目前为止 我可以返回包含该日期的所有行 content Get Content
  • 如何隐藏通过 JavaScript 对话框提示输入的密码?

    如何在 JavaScript 的对话框提示中隐藏用户输入的密码 例如 使用类似的东西 var passwd prompt Enter Password your password here 我希望这样 例如12345输入后 看起来像 or
  • 以结构作为参数的通用函数?

    struct Item1 a u32 struct Item2 a u32 b u32 fn some helper function item Item1 Basically item could be of type Item1 or
  • Angular2 - *ngFor / 使用数组循环遍历 json 对象

    想要循环遍历json对象 Defined on component side jsonObj 1 title title1 desc desc1 2 title title2 desc desc2 3 title title3 desc d
  • Magento 中产品详细信息页面上的自定义变量

    UPDATE 希望这是对问题的更好解释 我正在尝试使用以下方法将产品详细信息页面上的产品 SKU 传递给 Google Analytics setCustomVar 我在 Magento 1 4 0 1 上运行 我的 Analytics 异
  • 在不使用 System.Web 的情况下使用 OWIN 时,使用什么来代替 HttpContext

    我们目前有一个使用 OWIN 连接的 NancyFx 项目 我们没有使用 System Web 我们需要一些地方来放置我们的上下文 该上下文在请求的生命周期内而不是 HttpContext 我们已经开始在线程静态变量上实现上下文 以便我们可
  • Guzzle 6 结果返回并带有 HTTP 标头

    我对 Guzzle 6 x 如何返回结果有疑问 因此 当我尝试执行以下操作时 我收到 语法错误 json decode我的结果 我用过var dump and print r 得到我的实际结果 结果发现我的 JSON 结果返回时包含一个 H
  • 为什么传单弹出窗口中的按钮不起作用?

    我有一张带有很多标记的传单地图 当单击它们时 会出现一些带有编辑和删除按钮的信息 然而 出于某种原因 传单似乎掩盖了这些按钮 无论哪种方式 它们根本不起作用 这是我的地图组件 带有标记和弹出窗口 refresh this artworkSe