how to implement a main function in polymer apps

index.html

 <head>
   <!-- <link rel="import" href="https://stackoverflow.com/questions/20982489/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.1
import 'package:polymer/polymer.dart';
export 'package:polymer/init.dart';

@whenPolymerReady
void onReady() {
  /// Custom setup code here.
}

Before Polymer.dart 0.16.1

// >= Polymer 0.16.0
import "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 at
https://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
    });
  });
}

simple tooltip working in dartium, not as javascript

Leave a Comment