将数据传递给Polymer元素

时间:2013-09-10 17:23:57

标签: dart polymer

使用Web UI时,我可以将数据传递给这样的组件:

<my-element" name="{{someName}}"></my-element>

如何将数据传递给Polymer元素?

1 个答案:

答案 0 :(得分:7)

您可以将数据传递给Polymer元素,但需要更多细节。想象一下具有单个字段的元素name

// In element.dart.
import 'package:polymer/polymer.dart';

@CustomTag("my-element")
class MyElement extends PolymerElement with ObservableMixin {
   @observable String name;
}

以下是随附的html:

// In element.html.
<polymer-element name='my-element' attributes="name">
  <template>
    <h2>{{name}}</h2>
  </template>
  <script type="application/dart" src="element.dart"></script>
</polymer-element>

请注意attributes="name"部分。这会配置一些东西,以便在创建元素时可以传递name属性(如果元素需要,可以通过用逗号分隔它们来传递多个属性)。

创建元素时,将其包装在<template>标记中,该标记绑定到要传递给它的值:

// In index.html.
<template id='name1' bind>
  <my-element name="{{}}"></my-element>
</template>

<template id='name2' bind>
  <my-element name="{{}}"></my-element>
</template>

每个<template>都绑定到一个单独的值(我们将在一秒钟内完成)。创建元素时,您可以使用{{}}语法获取该值。

可以通过以下方式将数据绑定到模板:

// In index.dart.
void main() {
  query('#name1').model ='Bob';
  query('#name2').model ='Rohan';
}

这样,第一个<my-element>创建时名为'Bob',第二个<my-element>创建时名为'Rohan'。