我正在摆弄聚合物飞镖0.10.0-pre.10的“新”说明,只是意识到我安装了包0.9.5
(在更新的Dart编辑器上)。并且只能使用main() => dostuff();
运行代码根据instructions添加component1只是破坏了所有工作。
我将pubspec.yaml
聚合物依赖关系设置为>= 0.9.9
,并且auto pub获取版本0.10.0-pre.10
。然后,我按照建议进行了更改,并将dostuff()
移至自定义元素类(extends PolymerElement
)并将@initMethod
置于其上方。它没有运行。
在我无法找到将JSON文件中的新项目(我通过http成功通过http)绑定到聚合物元素之前,我运行它。
mylist.dart
import 'package:polymer/polymer.dart';
import 'dart:html';
@CustomTag('my-list')
class MyListElement extends PolymerElement {
@observable List mylist = ['one', 'two', 'three'];
@initMethod
static dostuff() {
print("initMethod");
// get json and pass to mylist
}
}
mylist.html
<polymer-element name="my-list">
<template>
<ul>
<template repeat="{{item in mylist}}">
<li>{{item}}</li>
</template>
</ul>
</template>
<script type="application/dart;component=1" src="mylist.dart"></script>
</polymer-element>
的index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample app</title>
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="mylist.html">
<script src="packages/browser/dart.js"></script>
</head>
<body>
<h1>MyList</h1>
<div id="container1">
<json-list id="my-list1"></json-list>
</div>
</body>
</html>
答案 0 :(得分:2)
元素中的此代码(尤其是@initMethod
)没有意义。
@CustomTag('my-list')
已经这样做了。只有当您希望执行类似@initMethod()
的方法在Polymer元素之外时,才需要main()
。
您可以在超级调用之前将此代码放在MyListElement
或更好的polymerCreated
内部的构造函数中。
import 'package:polymer/polymer.dart';
import 'dart:html';
@CustomTag('my-list')
class MyListElement extends PolymerElement {
@observable List mylist = ['one', 'two', 'three'];
@override
polymerCreated() {
print("initMethod");
// get json and pass to mylist
super.polymerCreated();
}
}
您没有获得Polymer 0.10.0-pre.10
,因为它是预发布版本,在修补程序版本之后由-
表示(而不是pre
)。
Pub默认忽略预发布。您必须通过'>=0.10.0-'