how to implement a main function in polymer apps
index.html
<head> <!-- <link rel="import" href="packages/polymer/polymer.html"> not necessary anymore (only in elements)--> <!-- <script src="packages/web_components/platform.js"></script> not necessary anymore with Polymer >= 0.14.0 --> <!-- <script src="packages/web_components/dart_support.js"></script> not necessary anymore with Polymer >= 0.15.0 --> <!-- old --> <script type="application/dart"> export 'package:polymer/init.dart';</script> <!-- new --> <script type="application/dart">export 'index.dart';</script> </head> <body> ... <!-- ... when you use a custom main method (see https://code.google.com/p/dart/issues/detail?id=17546#c16) --> <script type="application/dart" src="index.dart"></script> </body>
index.dart
Polymer 0.17.0 (Polymer.js 1.0)
main() async { await initPolymer(); // Any other code here.}
Before Polymer 0.17.0
Polymer 0.16.1 introduces a simpler way of initialization.Instead of main()
use a method annotated with @whenPolymerReady
// >= Polymer 0.16.1import 'package:polymer/polymer.dart';export 'package:polymer/init.dart';@whenPolymerReadyvoid onReady() { /// Custom setup code here.}
Before Polymer.dart 0.16.1
// >= Polymer 0.16.0import "package:polymer/polymer.dart";main() { initPolymer().then((zone) => zone.run(() { // code here works most of the time Polymer.onReady.then((_) { // some things must wait until onReady callback is called // for an example look at the discussion linked below }); }));}
For more details look at the changelog of Polymer 0.16.0 athttps://pub.dartlang.org/packages/polymer
Before Polymer 0.16.0
// < Polymer 0.16.0 import "package:polymer/polymer.dart";main() { initPolymer().run(() { // code here works most of the time Polymer.onReady.then((_) { // some things must wait until onReady callback is called // for an example look at the discussion linked below }); });}