我已阅读有关如何将数据传递给聚合物元素的此线程 聚合物飞镖中的按钮单击不起作用;需要聚合物元素
但是,如果我想通过在 polymer.dart 中使用 createElement() 将数据传递给以编程方式创建的元素,则没有包装模板。如上所述,我将如何传递数据?
顺便说一句,尽管我认为 dart 是一种非常酷的语言(我不喜欢 JavaScript),但我发现 dart 中的聚合物可能还没有准备好。很多事情都没有记录,必须通过示例或在这里询问。
谢谢,易
我已阅读有关如何将数据传递给聚合物元素的此线程 聚合物飞镖中的按钮单击不起作用;需要聚合物元素
但是,如果我想通过在 polymer.dart 中使用 createElement() 将数据传递给以编程方式创建的元素,则没有包装模板。如上所述,我将如何传递数据?
顺便说一句,尽管我认为 dart 是一种非常酷的语言(我不喜欢 JavaScript),但我发现 dart 中的聚合物可能还没有准备好。很多事情都没有记录,必须通过示例或在这里询问。
谢谢,易
我认为您应该从 MyElementElement-class 中删除 start()-function 并将其添加到上层。基本上你不应该在自定义元素中对上层对象有任何引用。现在自定义元素不可重用,它仅在此上下文中有效。
这是我如何将数据传递给动态创建的自定义聚合物元素的示例。我的意图是,单击“a href”并在容器 div 中加载聚合物元素。
聚合物元素.html
<polymer-element name="my-element">
<template bind>
<p> {{ mytext }} </p>
</template>
<script type="application/dart" src="polymer_myelement.dart"></script>
</polymer-element>
polymor_element.dart
import 'dart:html';
import 'package:polymer/polymer.dart';
import 'package:custom_element/custom_element.dart';
@CustomTag('polymer-myelement')
class MyElementElement extends PolymerElement with ObservableMixin {
bool get applyAuthorStyles => true;
@observable String mytext = "initial text";
void start() {
query('#a href to click').onClick.listen((MouseEvent event){
query('.container').children.clear();
var myElem = createElement('polymer-myelement');
MyElementElement myel = myElem.xtag;
myel.mytext = "i changed the text now or import w/e you want";
query('.container').children.add(myElem);
});
}
}
main() {
MyElementElement el = new MyElementElement();
el.start();
}
索引.html
<head>
<link rel="import" href="polymer_myelement.html">
and everything you need ...
</head>
<body>
<a href to click>click me for new text</a>
<div class="container">
<!-- START OF MAINCONTAINER -->
<!-- END OF MAINCONTAINER -->
</div>
</body>
所以这里是解释:在我的 main() 中,我只运行我的 start() 函数并为我的导航栏 href 设置一个 onclickListener。当我现在点击我的href时,我只是清除了我的“div class =“container”中的所有孩子,因为在我插入我的聚合物元素之前我总是想要一个清晰的div。现在用“createElement('polymer- mylement');"。创建一个 MyElement 对象并将聚合物元素“xtag”分配给它。现在您可以访问所有属性并可以更改它们。只需将创建的元素添加到您的 div 中即可。
您刚刚动态创建了一个聚合物元素,将您的新数据分配给它并在您的 index.html 中查看它
我已经搜索了很长时间,但一切正常。只有一种解决方案对我有用: https ://stackoverflow.com/a/20067111/189411