绑定不适用于动态生成的HTML

时间:2015-11-26 21:11:45

标签: javascript aurelia aurelia-binding

我正在创建聊天框,该聊天框是通过点击联系人动态生成的。 在动态生成的HTML中,我有一个textarea来输入一些文本,这里是HTML

<div class="chatboxinput">
  <textarea id="chatboxtextareaankur" class="chatboxtextarea" keydown.delegate="checkChatBoxInputKey($event, 'id', 'name')"></textarea>
</div>

但是“checkChatBoxInputKey”方法没有在任何按键事件上执行。 请让我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

它不起作用,因为Aurelia的视图编译器没有机会编译动态生成的标记来查找绑定等。

使用if绑定从DOM添加/删除元素。这是一个例子:

http://plnkr.co/edit/kBUz94?p=preview

<template>
  <button click.delegate="showChatBox = true">Show Chat Box</button>

  <div if.bind="showChatBox" class="chatboxinput">
    <textarea id="chatboxtextareaankur" class="chatboxtextarea" keydown.delegate="checkChatBoxInputKey($event)"></textarea>
  </div>
</template>
export class App {
  checkChatBoxInputKey(e) {
    console.log(e.which);
    return true;
  } 
}