首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纸元素只在Dart中创建HtmlElements

纸元素只在Dart中创建HtmlElements
EN

Stack Overflow用户
提问于 2015-04-09 13:09:09
回答 2查看 53关注 0票数 1

我有一个简单的组件,它包含定义如下的员工列表:

代码语言:javascript
复制
@Component(selector: 'employee-list', templateUrl:
    'employee_list.html', cssUrl: 'employee_list.css')
class EmployeeListComponent extends ShadowRootAware {
...
}

我希望在我的代码中使用一个PaperFab元素,作为一个操作按钮,并希望动态地修改它(例如更改图标)。

HTML中有一个指向元素定义的链接:

代码语言:javascript
复制
<link rel="import" href="packages/paper_elements/paper_fab.html">

以编程方式创建元素:

代码语言:javascript
复制
var fab = new PaperFab(); 
print(fab is PaperFab) // false

代码语言:javascript
复制
var fab = new Element.tag('paper-fab') as PaperFab;
// Casts error: type 'HtmlElement' is not a subtype of type 
//    'PaperFab' in type cast.

在通过

代码语言:javascript
复制
var fab = _shadowRoot.querySelection("#fabButton");
print(fab is PaperFab) // false

是否可以从自定义元素中访问纸张元素?或者您是否应该使用innerHTML,这可以工作,但破坏了组件的想法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-09 13:16:41

我猜你的聚合物初始化缺失了。有关更多详细信息,请参阅https://stackoverflow.com/a/20982658/217408

在通过在zone.run(() {... }initPolymer().run(() { ... }中运行代码或从聚合物生命周期回调中运行代码创建元素之前,您需要确保正确初始化聚合物。如果在run中初始化角,也可以在角码中到处创建聚合物元素。

这是创建实例或聚合物元素的默认方法。

代码语言:javascript
复制
var fab = new Element.tag('paper-fab') as PaperFab;

但是核心元素和纸元素都有一个工厂构造函数,它允许使用新元素实例化它们。

代码语言:javascript
复制
new PaperFab();

如果您构建自己的聚合物元素,您需要自己添加一个工厂构造函数,以便能够使用new创建新实例。有关更多详细信息,请参阅https://stackoverflow.com/a/27616062/217408

票数 1
EN

Stack Overflow用户

发布于 2015-04-09 13:41:08

除了Günter的答复外:

main.dart中,结构现在如下所示,将其与AngularDart结合起来:

代码语言:javascript
复制
void main() {
  initPolymer().then((zone) => zone.run(() {
    Polymer.onReady.then((_) {
      Logger.root
        ..level = Level.FINEST
        ..onRecord.listen((LogRecord r) {
          print(r.message);
        });

      applicationFactory().addModule(new MyAppModule()).run();
    });
  }));
}

并解决烟雾库中的任何问题,在pubspec.yaml中添加聚合物变压器

代码语言:javascript
复制
transformers:
- angular:
    html_files:
    ...
- polymer:
    entry_points: web/index.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29539417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档