#dart #dart-polymer
#dart #dart-polymer
Вопрос:
Я рассматриваю этот пример в https://github.com/dart-lang/core-elements/blob/master/example/core_selection.html
Код — Dart.
Тем не менее, глядя на привязку данных
selectAction(e, detail) {
detail['item'].classes.toggle('selected', detail['isSelected']);
}
определение метода не совпадает с тем, что я ожидал
selectAction(e, detail, element) {
detail['item'].classes.toggle('selected', detail['isSelected']);
}
В чем разница
Ответ №1:
До недавнего времени Polymer.dart требовал, чтобы методы обработчика событий имели эти три аргумента, но это больше не требуется.
Метод обработчика событий может принимать от 0 до 3 аргументов.
В приведенном выше примере target
или как вы его назвали element
, он не передается в качестве аргумента. Этот аргумент несколько избыточен, потому что вы получаете доступ к тому же значению с помощью e.target
(то же самое для detail
/ e.detail
)
Комментарии:
1. Спасибо, Гюнтер. Я бы хотел, чтобы команда polymer.dart предоставила нам информацию о том, где мы могли бы найти изменения, когда они будут внесены. Это сэкономило бы нам много времени. Я использую polymer 0.11.0 5, с какой версии polymer были внесены эти изменения?
2. Я не знаю, когда это было изменено. Недавно в комментарии к другому вопросу @Robert упомянул об этом.
3. В то время как e.target работает, d.detail — НЕТ. Обработчик событий, как вы заявили, также будет принимать 1-3 аргумента.