Ember.js: рдЗрдирдкреБрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ = "рдкрд░рд┐рд╡рд░реНрддрди" рдЖрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬреБрд▓ре░ 2015  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: emberjs/ember.js

рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдШрдЯрдирд╛ рдЗрдирдкреБрдЯ рд╕рд╣рд╛рдпрдХ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

{{input type="range" value=currentValue action="foo" on="change"}}

рд░реЗрдВрдЬ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг: http://emberjs.jsbin.com/zisejusahi/edit?html , js, output
рдкрд╛рда рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг: http://emberjs.jsbin.com/piqelexime/1/edit?html , js, output

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@rwjblue {{input}} рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдпрд╣ рдереА рдХрд┐ HTML рдЗрдирдкреБрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдереА, рдЬрдмрдХрд┐ рдореВрд▓реНрдп рдФрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреЛ-рддрд░рдлрд╝рд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдереАред {{input}} рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ-рд╕реЗ-рдПрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рд╕реАрдзреЗ рдмрдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП click рдпрд╛ change рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдкрдХреЛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред

рдЗрд╕ рдкрд░ рдЧрд╛рдЗрдб рдкрдврд╝рдирд╛ рд╕рдмрд╕реЗ рднреНрд░рд╛рдордХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

http://guides.emberjs.com/v2.0.0/templates/input-helpers/

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХреНрд╢рди рд╕реЗрдХреНрд╢рди рдЖрдкрдХреЛ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдбреЗрд╢рд░рд╛рдЗрдЬрд╝ рдХрд░реЗрдВред рдпрд╣ рддрдм рддрдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдЖрдк рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХрд░рддреЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреЗ:

http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_input

рдЗрд╕ рдХрдерди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ: "рд╕рд╣рд╛рдпрдХ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред"

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдЧрд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ click рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИ; рдмрд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рддред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд╕реНрд▓реИрдХ рдореЗрдВ рдХреВрджрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпреЛрдВред рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╡рд╛рджрди рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреИрд╕реЗ рдореИрдВ рдерд╛ред

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

рдЕрдЬреАрдм:

рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░реЗрдВ: http://emberjs.jsbin.com/yedigeyeda/1/edit?html , js, рдХрдВрд╕реЛрд▓, рдЖрдЙрдЯрдкреБрдЯ

рдпрд╣ # 10305 рдХреЗ рд╕рдорд╛рди рд╣реИ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рдЬрд╣рд╛рдВ fillIn рд╕рд╣рд╛рдпрдХ рдХрд┐рд╕реА рднреА "рдХреАрдЕрдк" рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

fillIn('#my-input', 'some-val');
find('#my-input').trigger('keyup');

рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЖрдЧ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬреЛ рд╢рд╛рдпрдж fillIn рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред

@Fryie - рдЬреЛ рдпрд╣рд╛рдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ https://github.com/emberjs/ember.js/pull/11016 рдХреЗ рд╕рдорд╛рди рд▓рдЧрддрд╛ рд╣реИред

рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ 'рдХреАрдк' рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЕрд░реНрде рдореЗрдВ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред :)

@stefanpenner : @JKGisMe рдФрд░ рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ {{input}} рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рд╣реИ: http://ember-twiddle.com/0830f4ed9f15df59801e

(@JKGisMe рджреНрд╡рд╛рд░рд╛ рдЯреНрд╡реАрдбрд▓)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдШрдЯрдирд╛рдПрдБ рдЕрднреА рдЗрдирдкреБрдЯ рд╣реЗрд▓реНрдкрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдЙрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЛрдмрд╛рдЗрд▓ рди рд╣реЛрдиреЗ рдкрд░ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕реЗ рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред рджреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЗрдирдкреБрдЯ рд╣реЗрд▓реНрдкрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдПрдореНрдмрд░ 2.0.0 рдЕрднреА рднреА рдСрди-рдЗрдирдкреБрдЯ = "" рдФрд░ рдСрди-рдЪреЗрдВрдЬ = "" рдЬреИрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ ASAP рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ...

рдореИрдВрдиреЗ _all_ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

{{input 
    value=value 
    autoresize=true 
    focus-in="inputFocusIn" 
    focus-out="inputFocusOut" 
    enter="removeFocus" 
}}

рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рдЬрд╝рдорд╛рдиреЗ рдХреЗ html рд╕рдВрд╕реНрдХрд░рдг рдФрд░ hbs рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

<input 
    value={{someValue}} 
    onblur={{action checkForValid value="target.value"}}
    oninput={{action validate value="target.value"}}
/>

рдЕрднреА рдпрд╣ рдЗрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

insert-newline
insert-newline
escape-press  
focus-in      
focus-out     
key-press     
key-up        
key-down

http://emberjs.com/api/classes/Ember.TextSupport.html

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ {{input action="foo" on="focus-in"}} (рдЬреЛ рдХрд┐ {{input focus-in="foo"}} ) рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реБрдИ (рдЬреЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рд╕реА рднреА рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ on="change" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдлрд┐рд▓рд╣рд╛рд▓ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдареАрдХ рд╣реИ рд╣рд╛рдВ, рдореБрдЭреЗ html рдЗрдирдкреБрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛рд╡ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП (mut model.value) рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЬреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ ... рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ {{input рд╣реЛрдиреЗ рдХреА рдХреНрдпрд╛ рдмрд╛рдд рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ <input рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ hbs рдХреЗ рд╕рд╛рде 2 рддрд░рд╣ рд╕реЗ рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА {{input рдХреБрдЫ рд╣рдж рддрдХ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдШрдЯрдирд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рдХреНрдпрд╛ рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП {{input рдмрд┐рд▓рдХреБрд▓ рднреА рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?

@JKGisMe - рд╣реБрд╣? {{input}} рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдХреИрд╕реЗ рд╣реИ? рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдШрдЯрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдореНрдмрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...ред

рддреЛ рдКрдкрд░ рджреА рдЧрдИ рдЯреНрд╡реЗрд▓реНрдб рдореЗрдВ ... рдЖрдк {{input рд╕рд╛рде рдЙрди рд╕рднреА рдХреЛ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?

рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рд╕рднреА рдЗрдирдкреБрдЯ рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП html рддрд░реАрдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдЙрдареЗ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдпрд╣ bc рдерд╛, рддреЛ рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдЯрди рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ ...ред : рдкреА рдмрд╣реБрдд рдмреБрд░рд╛ рджреЗрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рдж рдирд╣реАрдВ рд╣реИред

@rwjblue {{input}} рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдпрд╣ рдереА рдХрд┐ HTML рдЗрдирдкреБрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдереА, рдЬрдмрдХрд┐ рдореВрд▓реНрдп рдФрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреЛ-рддрд░рдлрд╝рд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдереАред {{input}} рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ-рд╕реЗ-рдПрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рд╕реАрдзреЗ рдмрдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП click рдпрд╛ change рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдкрдХреЛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ред

рдЗрд╕ рдкрд░ рдЧрд╛рдЗрдб рдкрдврд╝рдирд╛ рд╕рдмрд╕реЗ рднреНрд░рд╛рдордХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

http://guides.emberjs.com/v2.0.0/templates/input-helpers/

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХреНрд╢рди рд╕реЗрдХреНрд╢рди рдЖрдкрдХреЛ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдбреЗрд╢рд░рд╛рдЗрдЬрд╝ рдХрд░реЗрдВред рдпрд╣ рддрдм рддрдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдЖрдк рдЦреБрджрд╛рдИ рдирд╣реАрдВ рдХрд░рддреЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреЗ:

http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_input

рдЗрд╕ рдХрдерди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ: "рд╕рд╣рд╛рдпрдХ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред"

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдЧрд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ click рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИ; рдмрд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рддред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд╕реНрд▓реИрдХ рдореЗрдВ рдХреВрджрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпреЛрдВред рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╡рд╛рджрди рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреИрд╕реЗ рдореИрдВ рдерд╛ред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ

рдореИрдВ рдПрдореНрдмрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБ рдФрд░ рдкрд┐рдЫрд▓реЗ рдПрдХ рдШрдВрдЯреЗ рдХреЛ рдЗрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ рддреЛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдгреАрдп рд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реВрдВ рдФрд░ рдореБрдЭреЗ ng-change рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЕрднреА рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рд░реНрдп рд╣реИрдВ рдпрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдЦреЛрдЬрдирд╛ рд╣реИред

рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рдорд╛рдирддрд╛ рд╣реВрдВред рдХреЛрдгреАрдп рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╕реЛрдЪрд╛ рд╣реИ рдФрд░ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рдкреЛрд╕реНрдЯ рд╕реЗ рдХреЛрдИ рдХреНрд░рд┐рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд░рд╣рд╛ рдерд╛ред

@rwjblue @morganick рдореБрдЭреЗ рдЗрд╕ _miss- рд╕рдордЭ_ тАЛтАЛрдиреЗ рднреА рдХрд╛рдЯ рд▓рд┐рдпрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдПрдХ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢?

| рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ | {{input}} рдмрдирд╛рдо <input> |
| --- ---
| рдЗрдирдкреБрдЯ рдкрд░ рдорд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ | {{input}} рдпрд╛ <input> |
| рдЪреЗрдХрдмреЙрдХреНрд╕ w / рдХреНрд░рд┐рдпрд╛рдПрдБ | <input {{action="actionName" on="change"}} (рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА _checked_ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреНрд▓рд┐рдХ-рдЗрд╡реЗрдВрдЯ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП; рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ _checked_ рдкрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдЖрдЧ рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреА _checked_ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (*); рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдмрдВрдзрди click рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЯреЙрдЧрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ (!) рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ; |
| рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ | рдпрджрд┐ рдШрдЯрдирд╛ Ember.TextSupport рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рддреЛ {{input}} рдЕрдиреНрдпрдерд╛ <input> |

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

* ... IMO рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИрдВрдбрд▓рд░ рдФрд░ рдЙрдкрдпреЛрдЧ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХрд╛ _checked_ рдореВрд▓реНрдп рдордЬрд╝рдмреВрддреА рд╕реЗ рдлрд╛рд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ onClick={{action "actionName"}} рдФрд░ рдЬрд╛рдБрдЪ ev.target.checked рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИрдВрдбрд▓рд░ рдореЗрдВред рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ onClick={{action "actionName"}} рдФрд░ {{action "actionName" on='click'}} рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ: рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдШрдЯрдирд╛-рд╢реНрд░реЛрддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╣реИ?

рдЕрдЧрд░ рдЗрдирдкреБрдЯреНрд╕ рдХреЗ рдорд╛рди рдмрджрд▓реЗ рдЧрдП рддреЛ рдореБрдЭреЗ рдПрдХ рд╕реЗрд╡ рдмрдЯрди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдереАред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдлреЙрд░реНрдо рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреЙрд░реНрдо рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ "рдкрд░рд┐рд╡рд░реНрддрди" рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ рдлреЙрд░реНрдо рдХреЗ рднреАрддрд░ рдЗрдирдкреБрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЯреНрд╡реАрдбрд▓: https://ember-twiddle.com/?openFiles=templates.application.hbs%2C

рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдЗрд╡реЗрдВрдЯ рдХреЗ рдирд╛рдо: http://emberjs.com/api/classes/Ember.View.html#toc_event- рдирд╛рдо

рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ you рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред

@ jfuqua390 рдЖрдкрдХрд╛
"
рдпрд╣рд╛рдБ рдЯреНрд╡реАрдбрд▓: https://ember-twiddle.com/?openFiles=templates.application.hbs%2C
"
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

BTW, рдмрд╕ рдЬреЛ рднреА рдпрд╣рд╛рдБ рдЖрддрд╛ рд╣реИ, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рджреЗ рд░рд╣рд╛ рд╣реИред

    <input
      multiple="true"
      onchange={{action "upload"}}
      accept="image/png,image/jpeg,application/pdf"
      type="file"
    />
    actions: {
      upload: function(event) {
        console.log('upload');
      }
    }

@ldong рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдХрд╛рдо рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рд▓рдЧрднрдЧ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдореНрдмрд░) рдФрд░ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХреА:

Uncaught ReferenceError: Invalid left-hand side in assignment

рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?

рдЕрднреА рднреА рдЗрд╕рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ:

{{input value=value input=(action "valChange")}}

Stackoverflow рд╕реЗ рдирдХрд▓ рдХреА рдЧрдИ

@EricSchank @Fryie @JKGisMe @MarkMT @SillyButt @abepetrillo @davidsteinberger @greyhwndz @jcfinnerup @ jfuqua390 @ldong @locks рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рд╢рд╛рдпрдж рд╣рдо рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдЗрд╕ рдХрд╛ рдПрдХ рдирдпрд╛ рдкреНрд░рдЬрдирди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрд░реАрдХреЗ рд╣реИрдВ

@jcfinnerup рдпрд╣ рдХреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдЖрдк рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗ (рдЯреНрд░рд┐рдЧрд░ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде)?

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

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

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

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

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

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

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