Polymer получава стойност на полето за въвеждане на хартия, основно въвеждане при натискане на клавиш

Имам елемент за въвеждане на хартия

<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 е отдадената стойност (актуализирана, когато потребителят замъгли полето или натисне enter).

Също така, обмислете използването на наблюдение на данни вместо събития.

<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'] в dart. - 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