В настоящее время я работаю над созданием ленивой загрузки вместе с «более-маршрутизацией» в Polymer. У меня уже есть первая рабочая версия ленивой загрузки (вдохновленная приложением-маршрутизатором, который, к сожалению, полностью не поддерживает Polymer 1.0), но я не знаю, как я могу передать все события из импортированного дочернего элемента до моего элемента ленивой загрузки.Полимер улавливает все события от дочернего элемента
Итак, в моем примере я хочу, чтобы событие «привет» передавалось от входа в систему до ленивого загрузчика и от ленивого загрузчика вверх до элемента, содержащего ленивый загрузчик, - но без знания этого конкретного события в ленивом режиме, погрузчик. Поэтому мне нужно что-то вроде «улавливать все события, запускаемые дочерним элементом».
Вот что у меня есть:
страниц Логин:
ready:function() {
this.fire("hi");
},
используя ленивые-погрузчик:
<lazy-loader on-hi="hi" href="../pages/page-login.html" id="login" route="login"></lazy-loader>
призывающую груз:
document.getElementById("login").load()
Ленивый-погрузчик (сокращенная версия):
<dom-module id="lazy-loader">
<template>
<span id="content">Loading...</span>
</template>
<script>
window.lazyLoaded = window.lazyLoaded || [];
Polymer({
is: "lazy-loader",
properties: {
href:{
type:String,
value:""
},
element:{
type:String,
value:""
}
},
load:function(finishFunc) {
if(window.lazyLoaded.indexOf(this.href)===-1) {
var that = this;
this.importHref(this.href, function(e) {
window.lazyLoaded.push(that.href);
if(!that.element) {
that.element = that.href.split('/').reverse()[0];
that.element = that.element.split(".")[0];
}
var customElement = document.createElement(that.element);
// here I need something like "customElement.on("anyEvent")"
// => that.fire("anyEvent")
Polymer.dom(that.$.content).innerHTML = "Loading done.";
Polymer.dom(that.$.content).appendChild(customElement);
Polymer.dom.flush();
that.fire("loaded");
});
}
}
});
</script>
В качестве бокового узла: в настоящее время я думаю о сканировании атрибутов, предоставляемых ленивому загрузчику, начиная с «on-» и добавляя «pass- через слушателей "для этих событий. Я все еще открыт для более общего пути (без атрибутов синтаксического анализа). – Compufreak