私が欲しいのは、polymer要素<paper-input>から入力を取得し、カスタムpolymer要素を作成せずに変更時に警告することです。
問題:変更時は何もしないこれは疑わしい。値は何でもする
疑似コード:
<!DOCTYPE html>
<html>
<head><!--insert proper head elements here--></head>
<body>
<paper-input floatingLabel label="test" on-change="alert(this.value)"></paper-input>
</body>
</html>
入力中にOPが変更コールバックを必要としていたかどうかはわかりませんが、Polymer 1.0+の場合、入力中にon-input
の代わりに on-change
"イベント"
<paper-input label="Enter search term" on-input="search" value="{{searchTerm}}">
on-*
宣言型イベントハンドラ はPolymerが提供する構文糖衣なので、on-change
は、Polymer要素の外側では機能しません。querySelector
とaddEventListener
を使用して、Vanilla Javascriptで同じことを行うことができます。
<paper-input floatingLabel label="test"></paper-input>
<script>
document.querySelector('paper-input').addEventListener('change', function(event) {
console.log(event.target.value);
});
</script>
<paper-input>
要素は、「値」プロパティ変更イベント(「値」プロパティが変更されたときの非バブルDOMイベント)を起動します
要素宣言:
<paper-input label="Enter search term"
on-value-changed="_onSearchTermChanged"
value="{{searchTerm}}">
イベント処理:
_onSearchTermChanged: function (event) {
console.log(event.detail.value);
}
詳細については、 ポリマーの変更通知イベントをチェックしてください
次の構文を使用して、アノテーションにカスタム変更イベント名を指定できます https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#two-way-native =:
target-prop="{{hostProp::target-change-event}}"
私はペーパースライダーを使用していて、「変更中」では何も実行できないことを知りましたが、「変更中」は私が欲しかったものを引き起こしました。 paper-inputはPolymer要素であるため、宣言型のイベント処理で機能するはずです。