рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧреБрдг Number
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдмрджрд▓ рджрд┐рдП рдЬрд╛рддреЗ String
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рдХрд╛рд░рдг рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рд▓рдХреНрд╖рдг рдХреЗрд╡рд▓ iron-input
рдпрд╛ paper-input
, рдмрд▓реНрдХрд┐ рдпрд╣ рдкреЙрд▓рд┐рдорд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ?
рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд iron-input
рдореЗрдВ рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред "рд╕реНрдЯреНрд░рд┐рдВрдЧ" рд╣рдореЗрд╢рд╛ рдкреЙрдк рдЕрдк рд╣реЛрдЧрд╛ред
index.html:
<!DOCTYPE html>
<html>
<head>
<script src="bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="proto.html">
</head>
<body>
<proto-element></proto-element>
</body>
</html>
рдкреНрд░реЛрдЯреЛ.рдПрдЪрдЯреАрдПрдордПрд▓:
<link rel="import" href="bower_components/polymer/polymer.html">
<link rel="import" href="bower_components/iron-input/iron-input.html">
<dom-module id="proto-element">
<template>
<input is="iron-input" bind-value="{{value}}">
</template>
</dom-module>
<script>
Polymer({
is: "proto-element",
properties:{
value:{
type:Number,
value:1,
observer:"valueChanged"
}
},
valueChanged:function(n,o){
if(typeof o != "undefined")
alert(typeof n);
}
});
</script>
рдпрд╣ рдкреЙрд▓рд┐рдорд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдорд╛рдирдХ рдбреЛрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред input
рдЯреИрдЧ рдХреА value
рд╕рдВрдкрддреНрддрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╣реИ:
https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement
рд╕рдВрдкрддреНрддрд┐ рдкрд░ type: Number
рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИ; рдЙрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЕрдХреНрд░рдорд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдорд╛рд░реНрдХрдЕрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди ред рддреЛ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдорд╛рд░реНрдХрдЕрдк рд╣реИ:
<my-element value="123">
рдЖрдк value
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ "123" рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░ value
рд╣реИ type: Number
,
рдЗрд╕реЗ 123 рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджреВрд╕рд░реА рдУрд░, рдпрд╣:
<my-element value="{{hostValue}}">
рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА hostValue
рд╕рдВрдкрддреНрддрд┐ рдХреЛ my-element
рдХреА value
рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреЛрдИ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ; рдЙрдирдХрд╛ рдПрдХ рд╣реА рдореВрд▓реНрдп рд╣реИред
рддреЛ, рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрдирдкреБрдЯ рдПрдХ valueAsNumber
рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕ рддрд░рд╣ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ:
<input is="iron-input" type="number" value-as-number="{{value::input}}">
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЕрдкрдиреА valueChanged
рд╡рд┐рдзрд┐ рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
valueChanged:function(n) {
if(typeof n == "string") {
this.value = Number(n);
}
}
@arthurevans рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреЙрд▓рд┐рдорд░ рдХреЗ рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреА рдорджрдж рдорд┐рд▓реЗрдЧреАред
рдпрджрд┐ рдЖрдк рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ arrayObject. рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
https://github.com/pongpanot-t/lab-polymer/blob/master/data-binding/bind-prop-number.html
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдкреЙрд▓рд┐рдорд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдорд╛рдирдХ рдбреЛрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
input
рдЯреИрдЧ рдХреАvalue
рд╕рдВрдкрддреНрддрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╣реИ:рд╕рдВрдкрддреНрддрд┐ рдкрд░
type: Number
рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИ; рдЙрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЕрдХреНрд░рдорд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдорд╛рд░реНрдХрдЕрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди ред рддреЛ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдорд╛рд░реНрдХрдЕрдк рд╣реИ:рдЖрдк
value
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ "123" рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд░value
рд╣реИtype: Number
,рдЗрд╕реЗ 123 рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджреВрд╕рд░реА рдУрд░, рдпрд╣:
рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА
hostValue
рд╕рдВрдкрддреНрддрд┐ рдХреЛmy-element
рдХреАvalue
рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреЛрдИ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ; рдЙрдирдХрд╛ рдПрдХ рд╣реА рдореВрд▓реНрдп рд╣реИредрддреЛ, рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрдирдкреБрдЯ рдПрдХ
valueAsNumber
рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕ рддрд░рд╣ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ:рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдЕрдкрдиреА
valueChanged
рд╡рд┐рдзрд┐ рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: