Вызов функции 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 2

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 )

Я получил ответ из моего другого поста. Даже если я написал для другого контекста, я понимаю, что могу использовать то же самое. Спасибо Гюнтеру за ответ на эту тему.

Параметры события полимера на повторе