从定制包中加载聚合物元素

时间:2014-08-22 14:25:04

标签: html dart packages dart-polymer observable

我的问题是来自聚合物元素的可观察和发布的变量不起作用。更准确地说,如果我从包中导入元素,它们就无法工作。它们显示正确,但如果它们的值发生变化,它们就不会做出反应 如果我直接从主项目加载相同的元素一切正常!

我在github.com上发布了完整的项目并添加了自述文件 - > here

所以这就是我所做的:

我创建了一个包含聚合物元素的包。 该软件包名为 foo_package ,我的polymer-element使用foo.html和foo.dart。 它被命名为 poly-foo

foo_package结构

foo_package structure

现在我创建了一个新项目并为使用聚合物元素做好准备。 在yaml中,我添加了一个依赖项到我的包

pubspec.yaml

[...]
dependencies:
  foo_package: 
    path: D:\User\UserName\dart\foo_package
[...]

现在我在我的html文件中导入foo.html

<link rel="import" href="packages/foo_package/foo.html">

并实现我的自定义标记

<poly-foo></poly-foo>

最后我运行我的主文件,一切看起来都没问题。我的元素以我想要的方式显示。
但是可观察量和发布的变量无效。

我做错了什么?


foo.html

<link rel="import" href="../../packages/polymer/polymer.html">
<polymer-element name="poly-foo"> 
  <template>

    Counter:{{counter}}
    <button on-click="{{increment}}">Up!</button>

  <script type="application/dart" src="foo.dart"></script>
  </template>  
</polymer-element>

foo.dart

import 'dart:html';
import 'package:polymer/polymer.dart';

@CustomTag('poly-foo')
class PolyFoo extends PolymerElement {
  @observable int counter = 0;

  PolyFoo.created() : super.created();

  void increment(Event e, var detail, Node target) {
    counter = counter + 1;
  }
}

1 个答案:

答案 0 :(得分:1)

您需要在库包中使用聚合物变换器配置(但不需要任何入口点)

transformers:
- polymer:
    entry_points: