を登録して、私のindex.html
です:ダート/ポリマー:イベントリスナーの前に、私のアプリのコンストラクタを実行する前に発射イベントはここで
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>My App</title>
<link rel="stylesheet" href="./styles.css" shim-shadowdom>
<link rel="import" href="packages/myapp_frontend/elements/my_app/my_app.html">
<link rel="stylesheet" href="packages/myapp_frontend/fonts/fonts.css">
<script src="cordova.js" type="application/javascript"></script>
</head>
<body unresolved fullbleed>
<my-app></my-app>
<script src="socket.io.js" type="application/javascript"></script>
<script src="main.dart" type="application/dart"></script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
my_app.html
インサイドリスト全体のアプリのためのすべての要素。これは問題ありません。要素の中には、のようなプラグインラッパー(<cordova-app-version on-app-version="{{ onVersionInfo }}"></cordova-app-version>
)があります(cordova_app_version_plugin
をラップします)。この要素は、次のようになります。これは、DOMに追加された時点で
@CustomTag('cordova-app-version')
class CordovaAppVersion extends PolymerElement {
CordovaAppVersion.created() : super.created() {
document.on['deviceready'].listen((var e) {
this.fire('app-version', detail:
context['cordova']['plugins']['version'].callMethod('getAppVersion'));
});
}
}
、devcieready
はすでに解雇、そうapp-version
イベントが発生し、すぐにされています。一方、MyApp.created()
関数はまだ実行されておらず、上記の"{{ onVersionInfo }}"
を含むイベントリスナは(明らかに)登録されていません。 app-version
イベントが発生し、誰もそれを聞きません。その後数ms後、MyApp.created()
が実行されたというメッセージが表示されます。 app-version
イベントを手動で開始すると、正しく処理されます。
MyAppのコンストラクタの後に起動するように、タイマー(setTimeout equiv)を使用するようにすべてのプラグインファイルを手動で変更する必要はありませんが、それ以外のことはわかりません。 deviceready
イベントがすべての子要素がイベントを送信する前に、イベントリスナーが登録されていることを確認するにはどうすればよいですか?
私はあなたが提案してきたように私のコードを変更し、 '' CordovaAppVersion.created()から '')(レディ ''無効に機能を移動し、 ''しかし、イベントの順序ましたまだ私が期待しているものではありません。上記の要素のために、私は次のログステートメントを(順番に)持っています: '' cordovia-app-version created、cordovia-app-version ready、発射app-versionイベント、myApp created、myApp ready'' –
イベントの完全なチェーンは次のとおりです。「アプリケーションのバージョンが作成され、アプリケーションバージョンが作成され、アプリケーションバージョンが作成され、アプリケーションバージョンが発行され、アプリケーションバージョンが添付され、myAppが準備され、myAppが作成され、myAppが接続されました。私は、間違っていても、私は本当にそれについて何をすべきか分かりません。 –
申し訳ありませんが、私は質問を誤解しました。イベントが早すぎる場合は、おそらくポリマーの外側にイベントリスナーを追加する必要があります(たとえば、 'main()')。 –