如何在Polymer 1.0中更新textarea和iron-autogrow-textarea文本值?

时间:2015-08-13 17:00:16

标签: polymer polymer-1.0

我在Polymer中设置了与普通textarea的双向绑定:

<textarea id="textbox" value="{{editText::input}}" autofocus></textarea> 

我还尝试使用bindValue属性进行双向绑定iron-autogrow-textarea

<iron-autogrow-textarea bindValue="{{editText}}" class="fit" autofocus></iron-autogrow-textarea>

属性editText分配如下:

Polymer({
  is: "page-editor",
  properties: {
    editText: {
      type: String,
      value: ""
    }
  },

但是当更改下面代码中的editText时,它不会更新相应的textarea值......

this.editText = "new message";

有趣的是,console.log(this.editText)表示其未定义&#39;

2 个答案:

答案 0 :(得分:1)

我仍然在使用Polymer,但我认为您需要将notify设置为true

Polymer({
  is: "page-editor",
  properties: {
    editText: {
      type: String,
      value: "",
+     notify: true
    }
  },
...

如果这不起作用,请发布完整的样本,我很乐意与您一起调试。

您可以使用Polymer的on-*语法添加事件侦听器,其中*是要侦听的事件。

<iron-autogrow-textarea bindValue="{{editText}}" 
                        class="fit" 
                        on-click="f' 
                        autofocus></iron-autogrow-textarea>

定义事件监听器:

Polymer({
  is: "page-editor",
  properties: {
    editText: {
      type: String,
      value: "",
      notify: true
    }
  },
  /* the function signature below may be wrong...
   * don't know how many arguments it takes... */
  f: function(e, detail, sender) {
    this.editText = 'yay';
  }
...

答案 1 :(得分:1)

要使用的正确属性是bind-value="{{editText}}"。 CamelCase属性转换为带有破折号(source)的属性。