Вызов функции Polymer с параметрами
Это кажется очень простым, но почему-то я не уверен, как это сделать. Я хочу отправить данные в полимерный компонент с событием" core-collapse-open", но это не работает:
<core-collapse on-core-collapse-open="{{loadDetails(data)}}">
{{data.Title}}
...
Когда я использую приведенный выше код, функция loadDetails
в polymer не поражает.
Polymer('custom-item', {
data: {},
ready: function () {
},
loadDetails: function (e, details, sender) {
debugger;
}
});
Если я не использую синтаксис функции в декларативном синтаксисе (как показано ниже), функция loadDetails попадает.
<core-collapse on-core-collapse-open="{{loadDetails}}">
{{data.Title}}
...
Как я могу отправлять параметры в событиях.
3 ответа:
on-core-collapse-open="{{loadDetails(data)}}"
Это означает: выполните
loadDetails(data)
, и независимо от возвращаемого значения это будет связано как обработчик событий. Не то, что ты хочешь.Кроме того, функция обработчика событий уже получает параметры: объект события. Вы не можете передать ему дополнительные параметры. Если
data
, который вы хотите передать, ссылается на ваш атрибутthis.data
: функцияloadDetails
уже имеет доступ к нему в видеthis.data
, поэтому вам не нужно передавать его.Если вы пытаетесь использовать одну и ту же функцию обработчика для двух различные события и передавать дополнительные параметры с каждым отдельным событием: традиционно вы бы сделали это с анонимной оболочкой функции, и это просто невозможно, используя декларативный синтаксис.
Можно привязать
data
к атрибутуcore-collapse
, а затем получить доступ к данным с помощью аргументаtarget
обработчика событий или свойстваtarget
аргументаevent
или альтернативно, еслиdata
является моделью элемента, просто получить доступ кTemplateInstance
(см. Полный пример в https://stackoverflow.com/a/24530099/217408 )