2

テンプレートがあります:

<element name="x-my-elem" constructor="MyElem" extends="div">
  <template>
    <div> 
      <button on-click="onClick()"> Button </button>
      <div id="displayMe">
      </div>
    </div>
  </template>
</element>

そしてスクリプト:

class MyElem {
   onClick {
      query("#displayMe").innerHtml = "hello";
   }
}

現在、html ファイルにはコンポーネントの複数のインスタンスがあります。

<div is="x-my-elem" id="p1" ></div>
<div is="x-my-elem" id="p2" ></div>
...

各ボタンは、それに属する「displayMe」のみを変更したい。それを達成する方法は?一意の ID を生成する方法はありますか? this.elements[i] よりも優れたものはありますか?

4

1 に答える 1

2

まず、ここで行っているように、コンポーネントのインスタンスを複数持つことができるため、コンポーネントの内部では id よりもクラスを優先する必要があると思います。

いずれにせよ、クエリの範囲をコンポーネントに限定する方法は、次のようthis.query()に代わりにを使用することです。query()

class MyElem {
   onClick {
      this.query(".displayMe").innerHtml = "hello";
   }
}
于 2013-02-01T00:29:35.367 に答える