Полимер получает значение поля бумажного ввода, основного ввода при нажатии клавиши

У меня есть элемент ввода бумаги

<paper-input 
    id="{{ id }}" 
    label="{{ label }}" 
    on-keyup="{{ keypressHandler }}" 
    value="{{ value }}">
</paper-input>

и я могу поймать событие, когда ключ отпущен.

Polymer("app-input", {
    ready: function() {
        this.value = false;
    },
    keypressHandler: function(event, detail, sender) {
        console.log("inputChanged");
        console.log(this.value);
    }
});

Но this.value изменяется только тогда, когда фокус удаляется из поля ввода, поэтому я не могу получить значение элемента в момент отпускания кнопки.

Как я могу получить значение элемента в keypressHandler()?


person wormhit    schedule 29.06.2014    source источник


Ответы (1)


Для paper-inputcore-input) inputValue — это значение в реальном времени, а value — это значение фиксированное (обновляется, когда пользователь размывает поле или нажимает клавишу ввода).

Кроме того, рассмотрите возможность использования наблюдения за данными вместо событий.

<paper-input 
    id="{{ id }}" 
    label="{{ label }}" 
    inputValue="{{ value }}">
</paper-input>

...

Polymer("app-input", {
    valueChanged: function() {
        console.log("valueChanged");
        console.log(this.value);
    }
});
person Scott Miles    schedule 29.06.2014
comment
это не работает для меня. но я использую e.attributes['inputValue'] в дротике. - person Jacob Phillips; 14.07.2014
comment
В коде вам почти никогда не нужно обращаться к атрибутам, вместо этого обращайтесь к свойствам. Предполагая, что e является ссылкой на ваш элемент ввода, попробуйте e.inputValue. - person Scott Miles; 15.07.2014
comment
Я использую dart и не могу получить правильный экземпляр классов, поэтому у них нет необходимых свойств. - person Jacob Phillips; 15.07.2014
comment
Я думаю, что вы должны уметь делать (e as PaperInput).inputValue, но на самом деле я ничего не знаю о Dart, извините. - person Scott Miles; 15.07.2014
comment
@JacobPhillips, вы используете пакет paper_element? pub.dartlang.org/packages/paper_elements - person Justin Fagnani; 15.07.2014
comment
Да, я решил свою проблему здесь: stackoverflow.com/questions/24745751/ - person Jacob Phillips; 15.07.2014
comment
Это свойство inputValue отсутствует в документах... может быть полезно указать его там: polymer-project.org/docs/elements/ - person jamstooks; 21.07.2014
comment
inputValue задокументирован в базовом классе core-input. Там есть ссылка, где говорится, что расширяется основной ввод. Я согласен, что это не должно быть так трудно найти, хотя. - person Scott Miles; 21.07.2014