外部更改聚合物属性

时间:2015-09-16 09:38:44

标签: attributes polymer

我看到很多关于如何监听属性变化的问题。但没有关于如何真正改变它们。

即使在调试中,我也无法在对象树中找到属性。我该如何实现这一目标?有更多的聚合方式来做以下事情吗?

<polymer-element name="my-element" attributes="owner">
  <template>
    <p id="el">{{owner}}</p>
  </template>
  <script>
        Polymer({
            owner: "Miguel",
        });
  </script>
</polymer-element>

<my-element id="el1" owner="blabla"></my-element>

<script>
    $(document).ready(function(){
        $("el1").owner = "Mary"
    })
</script>

它会打印blablab,但不会将其更改为Mary

1 个答案:

答案 0 :(得分:0)

在0.5中,您需要等待polymer-ready。请参阅文档here

<head>
  <link rel="import" href="path/to/x-foo.html">
</head>
<body>
  <x-foo></x-foo>
  <script>
    window.addEventListener('polymer-ready', function(e) {
      var xFoo = document.querySelector('x-foo');
      xFoo.barProperty = 'baz';
    });
  </script>
</body>

理想情况下,您的应用会是<my-app></my-app>之类的元素,因此您可以对owner属性进行绑定,如下所示:

<my-element owner="{{owner}}"></my-element>

my-element将驻留在另一个Polymer元素中,您可以在其中设置所有者属性,如下所示:

// Parent Polymer element
Polymer({ 
  _someFunctionYouCall: function() {
   this.owner = 'Mary';
  }
});