Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建聚合物dart web组件库的正确方法?_Dart_Dart Polymer - Fatal编程技术网

创建聚合物dart web组件库的正确方法?

创建聚合物dart web组件库的正确方法?,dart,dart-polymer,Dart,Dart Polymer,我正在尝试使用dart和polymer构建一个web组件库,但我无法在组件内部进行数据绑定 我制作了一个测试应用程序和一个库。 测试应用程序定义了一个简单的主要组件: 该组件导入并使用我的库中定义的我的主应用程序: MYAPP 活动 您好,我们这里有一些活动: 是否显示面板(int)? 面板是否隐藏(int)? 一切正常(纸张组件、面板抽屉在点击按钮时切换),但条件模板不起作用。唯一的解决方法是直接使用可观察的mixin并在我的方法中调用“deliverChanges” 我发现的所

我正在尝试使用dart和polymer构建一个web组件库,但我无法在组件内部进行数据绑定

我制作了一个测试应用程序和一个库。 测试应用程序定义了一个简单的主要组件:


该组件导入并使用我的库中定义的我的主应用程序:


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服务器重新启动)。