Dart 聚合物镖@initMethod未执行

Dart 聚合物镖@initMethod未执行,dart,dart-polymer,Dart,Dart Polymer,我在摆弄polymer dart 0.10.0-pre.10的“新”说明,结果发现我安装了包0.9.5(在更新的dart编辑器上)。并且只能使用main()=>dostuff()运行代码根据添加组件1刚刚破坏了所有工作 我将pubspec.yamlpolymer-dependency设置为>=0.9.9,它会自动发布版本0.10.0-pre.10。然后,我根据建议进行了更改,并将dostuff()移动到一个自定义元素类(扩展了polymerement),并将@initMethod放在它上面。它不

我在摆弄polymer dart 0.10.0-pre.10的“新”说明,结果发现我安装了包
0.9.5
(在更新的dart编辑器上)。并且只能使用
main()=>dostuff()运行代码根据添加组件1刚刚破坏了所有工作

我将
pubspec.yaml
polymer-dependency设置为
>=0.9.9
,它会自动发布版本
0.10.0-pre.10
。然后,我根据建议进行了更改,并将
dostuff()
移动到一个自定义元素类(
扩展了polymerement
),并将
@initMethod
放在它上面。它不运行

在运行之前,我无法找到一种方法将JSON文件中的新项目(我成功地通过http获得)绑定到聚合元素

迈利斯特省

import'包装:polymer/polymer.dart';
导入“dart:html”;
@CustomTag(“我的列表”)
类MyListElement扩展了聚合关系{
@可观察列表mylist=['1','2','3'];
@初始方法
静态dostuff(){
打印(“初始化方法”);
//获取json并传递到mylist
}
}
mylist.html


  • {{item}}
index.html


示例应用程序
迈利斯特
元素中的此代码(尤其是
@initMethod
)没有意义。
@CustomTag('my-list')
已经这样做了。只有当您希望像
main()
那样执行聚合元素外部的方法时,才需要
@initMethod()

您可以在超级调用之前将此代码放入
MyListElement
的构造函数中,或者更好地放入
polymerCreated

import'包装:polymer/polymer.dart';
导入“dart:html”;
@CustomTag(“我的列表”)
类MyListElement扩展了聚合关系{
@可观察列表mylist=['1','2','3'];
@凌驾
聚合生成(){
打印(“初始化方法”);
//获取json并传递到mylist
super.polymerCreated();
}
}
您没有获得Polymer
0.10.0-pre.10
,因为它是一个预发行版,由补丁版本后的
-
指示(而不是
pre
)。

默认情况下,发布将忽略预发布。您必须通过版本约束来强制执行它们,如
'>=0.10.0-'

啊,我明白了。我最终发现,我可以将代码放入一个ready()函数中,该函数将被执行,现在它以HTML格式呈现JSON。我想现在您已经提到了,最好将其放在polymerCreated()中。(@gunter zochbauer BTW对重复发布表示歉意)您知道我如何以聚合表示法绑定到json对象中的键/值对吗。我有模板repeat=“{{jsonarray中的对象}}”。。。我想摆一张桌子。假设每个对象都有{1:1,2:2,3:3}这在很长时间内都不起作用,但我想我读到这是最近修复的(虽然不确定)。如果我没记错的话,您应该像“{key in myList.keys}}”一样使用它,当您需要标记中的值时,您可以使用“{myList[key]}”。如果问题不起作用,请创建一个新问题,如果问题解决了,请接受我的答案(通过单击向上/向下投票按钮下方的复选标记)。我没有将该键/值绑定到工作中。我把它贴成了。勾选OP的答案。