如何使用* Changed获取对已更改元素的引用?

时间:2014-11-10 03:01:46

标签: dart dart-html

这是我的html:

<polymer-element name="my-textarea">
  <template>
    <link rel="stylesheet" href="my_textarea.css">
    <textarea value="{{val}}"></textarea>
    <p>Val is: {{val}}</p>
  </template>
  <script type="application/dart" src="my_textarea.dart"></script>
</polymer-element>

这是我的飞镖:

@CustomTag('my-textarea')
class MyTextarea extends PolymerElement {
  @observable var val = "Hello, World";

  MyTextarea.created() : super.created() {}

  valChanged(oldValue, newValue) {
    print("okay!");
  }
}

而不是打印“好吧!”当textarea的值发生变化时,我想打印selectionStart。这是HTML元素的属性,所以我需要对它的引用。我怎样才能在valChanged函数中得到它?

2 个答案:

答案 0 :(得分:1)

如果您向<textarea>添加了ID,则可以在类中进行访问,如下所示:$['my-textarea']

使用该引用,您可以访问所需的任何textarea属性。

答案 1 :(得分:1)

valChanged方法不提供对导致更改的元素的引用。无论是什么原因导致值的变化,都会调用此方法。如果您的代码中val = 'xxx'; valChanged也被调用,my-textarea也会被调用,而不仅仅是{{1}}被更改。