Polymer 2.0:通知并反映到属性

Polymer 2.0:通知并反映到属性,polymer,web-component,Polymer,Web Component,我是这个框架的新手,希望看到一些有用且简单的示例,说明如何使用notify和reflect to属性。 请保持示例简单,或为您提供的任何代码添加解释。通知: 可以设置为True | False。假设您有父元素和子元素。工作示例 parent-element.html: <dom-module id="parent-element"> <template> <child-element foo="{{test}}"></child-elemen

我是这个框架的新手,希望看到一些有用且简单的示例,说明如何使用notify和reflect to属性。
请保持示例简单,或为您提供的任何代码添加解释。

通知:

可以设置为True | False。假设您有
父元素
子元素
。工作示例

parent-element.html:

<dom-module id="parent-element">
  <template>
    <child-element foo="{{test}}"></child-element>
  </template>

  <script>
    Polymer({
      is: "parent-element",
      properties: {
        test: {
          value: "bar"
        }
      }
    })
  </script>
</dom-module>
<dom-module id="child-element">
  <template>
    <paper-input value="{{test}}"></paper-input>
  </template>

  <script>
    Polymer({
      is: 'child-element',

      properties: {
        test: {

        }
      },
    });
  </script>
</dom-module>
什么是hapenning?在子元素中,我们定义了
test
属性,该属性绑定到
paper input
,这意味着,每当我们在
paper input
中写入内容时,该属性会自动更新。YEE那太棒了,我们不需要在
子元素
中更新属性,但是父元素怎么知道属性
测试
已经更改了呢?嗯,他不能

下面是
notify:true
。如果设置了它,就不必关心通知父元素
子元素
中的某个地方,
test
属性已更改

很快,父元素和子元素中的属性将同时更新

反映到属性:

正如名称所说,当您将其设置为某个属性时,它的值将在宿主元素的属性中可见。最好用一些例子来说明这一点

Polymer
中,我们知道对某些元素的属性设置一些绑定需要
$
符号

<custom-elem foo-attribute$="[[someProperty]]"></custom-elem>
在这种情况下,CSS将不起作用,因为
foo
是属性(而不是属性),CSS仅应用于属性

要使其工作,我们必须在
foo
属性的
子元素
中添加
reflectToAttribute

<dom-module id='child-element'>
  <template>
    <div>[[foo]]</div>
  </template>

  <script>
    Polymer({
      is: "child-element",
      properties: {
        foo: {
          reflectToAttribute: true
        }
      }
    })
  </script>
</dom-module>

[[foo]]
聚合物({
是:“子元素”,
特性:{
傅:{
reflectToAttribute:真
}
}
})
在此之后,
foo
将成为属性和属性。此时,CSS将应用于
子元素
,我们将能够使用文档中
子元素
中的
foo
值:

要绑定到属性,请在属性后添加美元符号($) 姓名:

双向绑定。。。属性必须设置为notify:true


我有一个问题,如果你比较我还没有掌握这个聚合物的东西,我也是一个新手,但我一直在工作,简而言之,你会如何描述父元素需要知道子元素已经更新了属性,在现实生活中,它为什么需要知道?好的,我已经读过这些帖子:所以它应该意味着我需要在notify:true中设置它们,或者根据您的示例设置哪一个“test”属性。
<dom-module id='child-element'>
  <template>
    <div>[[foo]]</div>
  </template>

  <script>
    Polymer({
      is: "child-element",
      properties: {
        foo: {
          reflectToAttribute: true
        }
      }
    })
  </script>
</dom-module>