Polymer: рдореЙрдбрд▓: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рдХрд╛рд░рдг рд╕рдВрдЦреНрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЬреБрд▓ре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Polymer/polymer

рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧреБрдг 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);
        }
    }

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдкреЙрд▓рд┐рдорд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдорд╛рдирдХ рдбреЛрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред 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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

yuihiro picture yuihiro  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yairopro picture yairopro  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

abdonrd picture abdonrd  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bmodeprogrammer picture bmodeprogrammer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fabysdev picture fabysdev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ