创建聚合物dart web组件库的正确方法?
我正在尝试使用dart和polymer构建一个web组件库,但我无法在组件内部进行数据绑定 我制作了一个测试应用程序和一个库。 测试应用程序定义了一个简单的主要组件:创建聚合物dart web组件库的正确方法?,dart,dart-polymer,Dart,Dart Polymer,我正在尝试使用dart和polymer构建一个web组件库,但我无法在组件内部进行数据绑定 我制作了一个测试应用程序和一个库。 测试应用程序定义了一个简单的主要组件: 该组件导入并使用我的库中定义的我的主应用程序: MYAPP 活动 您好,我们这里有一些活动: 是否显示面板(int)? 面板是否隐藏(int)? 一切正常(纸张组件、面板抽屉在点击按钮时切换),但条件模板不起作用。唯一的解决方法是直接使用可观察的mixin并在我的方法中调用“deliverChanges” 我发现的所
该组件导入并使用我的库中定义的我的主应用程序:
MYAPP
活动
您好,我们这里有一些活动:
是否显示面板(int)?
面板是否隐藏(int)?
一切正常(纸张组件、面板抽屉在点击按钮时切换),但条件模板不起作用。唯一的解决方法是直接使用可观察的mixin并在我的方法中调用“deliverChanges”
我发现的所有示例都不需要这样做,即使是我正在使用的纸质组件,也可以在我的测试应用程序中工作,而不需要使用可观察的mixin。所以我想知道:我做错了什么?创建聚合物省道组件库的“正确”方法是什么
为了完整起见,这里是主要应用程序组件的代码(使用Observable mixin的变通版本):
import'包装:polymer/polymer.dart';
导入“package:core_elements/core_scaffold.dart”;
导入“包:核心元素/核心项目.dart”;
@CustomTag('my-main-app')
类MyMainApp使用Observable/*扩展了聚合关系,有一个输入错误。main_app.html
中的第一个非注释行:最后我找到了它不起作用的原因。不仅在主应用程序中,而且在库pubspec中,必须有一个聚合物变压器
以下是我的库的正确pubspec:
name: mylib
version: 0.0.1
dependencies:
core_elements: '>=0.2.0 <0.3.0'
paper_elements: '>=0.1.0 <0.2.0'
polymer: '>=0.13.0 <0.14.0'
transformers:
- polymer
名称:mylib
版本:0.0.1
依赖项:
核心元素:'>=0.2.0=0.1.0=0.13.0我看不出有什么不对。我会简化您的切换
,使其成为@observable bool showPanel=true代码>和无效切换抽屉()=>showPanel!=展板代码>,
。如果这在没有“可观察的黑客”的情况下工作,那会很有趣。您是否尝试过deliverChanges()代码>没有`可观察的?你用的是什么聚合物版本?你的
index.html`看起来怎么样?启动页面时是否收到任何警告?@GünterZöchbauer我的第一个版本使用了“bool”,但我切换到int以检查问题是否是数据类型。不是那样的。@GünterZöchbauer我试过在不使用mixin的情况下调用deliverChanges(),但它不起作用。这种想法让我抓狂……我编辑了这篇文章。这是我的编辑器的错误复制和粘贴,我运行的实际代码是正确的。但是谢谢。你介意发布你的launcher.dart
、pubspec.yaml
和pubspec.lock
文件吗?它为我工作,使用核心元素“0.2.0+1”、纸张元素“0.1.1+2”和聚合物“0.13.1”。我创建了一个“空的”launcher.dart(也就是说,一个MyLauncher类扩展了Polymerement,并且只声明了.created()
构造函数),一切都正常。这很奇怪。昨天我在家,在重命名了一些文件后,它突然在没有mixin黑客的情况下工作了。我无法重现这种不良行为。但现在我在办公室,它又不工作了。我开始讨厌Dart了。家里和办公室都是同一台电脑吗?还是不同的?如果不同,两种飞镖的版本是否相同?尝试重新复制回购协议?(我假设代码在git回购中。)尝试删除build
文件夹并重新构建同一台计算机。但真正的原因就是我的答案。我已经做了几个实验,有没有变压器,但可能必须“杀死”并重新启动酒吧服务,以正确地重建一切,所以发生了这样的事情:我添加了变压器,但它仍然不工作。我回到家,然后它工作了(因为酒吧服务重新开始),但我不记得我做了那个改变。我恢复时没有变压器,仍然在工作。我回到办公室,然后它不再工作了(pub服务器重新启动)。