Ember.js: рд╢реВрдиреНрдп рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдкрд░рдо рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдорд╛рд░реНрдЪ 2014  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: emberjs/ember.js

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

_ рдХрд┐рд╕реА рдХреЛ рднреА Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ ред_

рд╕рдорд╕реНрдпрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдЧрд░ рдХреНрд╡реЗрд░реА рдкрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдпрд╣ null 'null' ред

var AnimalsController = Ember.Controller.extend({

  queryParams: ['myCat']
  // myCat: null // deliberately not set, to illustrate the issue

});

export default AnimalsController;

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

рдпрд╣ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @denisnazarov ред

ping se├▒or @ рдордЪреНрдЯреА

@ рд╣рдо рдЗрд╕ рдкрд░ рдЖрдкрдХреА рдорджрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЗрд╕рд▓рд┐рдП рдкрд┐рдЫрд▓реА рд░рд╛рдд рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдХрд╣реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рд╣реИред

App.MyController = Ember.Controller.extend({
  queryParams: ['filters'],
  filters: ['starred']
});

рдпрджрд┐ рдЖрдк filters рд╕реЗ null рдФрд░ рдкреГрд╖реНрда рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк url рдореЗрдВ null рдХреЛ рд╕реАрд░реАрдЬрд╝ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдпрдВрддреНрд░рдХ рдЧреБрдг рдЙрд╕рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкрд░ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рдорд┐рдереНрдпрд╛ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдЭреВрдареЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЗ рдмреАрдЪ рдЕрд╕реНрдкрд╖реНрдЯ рдерд╛ред рдЕрдм рдпрд╣ рдПрдХ defaultValue рдФрд░ null рдпрд╛ undefined рдмреАрдЪ рдЕрд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред

рдмреВрд▓рд┐рдпрди рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: http://emberjs.jsbin.com/hamev/2/edit

рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди null рд╕реЗрдЯ рд╣реИ, рддреЛ рдЗрд╕реЗ true рдпрд╛ false рд╕реЗрдЯ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, 'true' рдпрд╛ 'false' ред

@HeroicEric рддреЛ рдпрд╣ null рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ рдпрджрд┐ рдпрд╣ рдЬреАрд╡рди рдХрд╛ рд╕рдордп рд╣реИ рддреЛ рдпрд╣ рдмреВрд▓рд┐рдпрди true / false ?

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

@ рдореИрдЪреНрдЯреА рдореИрдВрдиреЗ jsbin рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдЧреИрд░-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рдЬрдм рдореИрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред

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

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ URL рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдВрдЧреЗ:

/ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рднреА
/ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛? рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ = рд╕рд╣реА рд╕рднреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
/ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛? рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ = рдЧрд▓рдд рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдирд╣реАрдВ рд╣реИрдВ

@HeroicEric @machty рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛ рдХрд┐ рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯрд╡реИрд▓реНрдпреВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ( null рдпрд╛ undefined ) рддреЛ рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ред рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ true рдФрд░ false рдЙрдирдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░рдордмрджреНрдзрддрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЪреВрдХ рдЬрд╛рддреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рдВрдкрддреНрддрд┐ null рд╕реЗрдЯ рдХреА рдЬрд╛рдП, рддреЛ рд╣рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд╕реЗ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред @ рдорд╛рд░реНрдЧ рдкрд░ queryParams рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛?

рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдерд╛ рддреЛ рдЖрдк 'boolean рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ null ред

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ JSBin рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЬреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ:

http://jsbin.com/dipajezi/1/edit

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

рдкреНрд░рд╢реНрди: ?page=1

рдЬрдм рдореИрдВ NextPage рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдореИрдВ page рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕ рдмрд╛рд░ foo рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкрд╛рд╕ "null" рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╣реИ, рдЬреЛ рдЕрдЬреАрдм рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдЕрднреА рднреА null рдХрд╛ рдореВрд▓реНрдп рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХреВрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред

рдкреНрд░рд╢реНрди: ?page=1 рдФрд░ ?page=1&foo=null

рдЕрдВрдд рдореЗрдВ, рдЬрдм рдореИрдВ ChangeFoo рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕ рдмрд╛рд░ foo рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдХреЛ рдЬреЛ рднреА рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЬрдм рдХрд┐ рдорд╛рди рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред

рдХреНрд╡реЗрд░реА ?page=1&foo=3

@raytiley рдиреЗ рдЕрднреА https://github.com/raytiley/ember.js/commit/26a3f8569edb58f8644ce4f9cec7000276c327a6#dd0631ecfe6138cf2eb2d94369c3e846R1640 рдкрд░ рдиреЛрдЯ рд▓рд┐рдЦрд╛ рд╣реИред

рдпрджрд┐ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ null рд▓рд┐рдП рдПрдХ qp рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЗрд╕реЗ рдореЙрдбрд▓ рд╣реБрдХ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ null рдХреЛ "рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ" рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрд╢рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЗрд╕реЗ null рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдиреНрдпрдерд╛ рдпрджрд┐ рдЖрдк QPs рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдорд╛рди рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ params.myQP && params.myQp !== "null" ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдХреЛрдИ JSBin рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд ember.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: http://s3.amazonaws.com/machty/to_s3_uploads/ember -9fbe6c2a-c124-5c2e-041414

_ рдХрд┐рд╕реА рдХреЛ рднреА Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ ред_

рд╕рдорд╕реНрдпрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрд┐рдирд╛рд░реЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдЧрд░ рдХреНрд╡реЗрд░реА рдкрд░рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдпрд╣ null 'null' ред

var AnimalsController = Ember.Controller.extend({

  queryParams: ['myCat']
  // myCat: null // deliberately not set, to illustrate the issue

});

export default AnimalsController;

@HeroicEric рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрд╕рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдореЗрдВ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВред рдпрд╣ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг (2.6) рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

export default Ember.Controller.extend({
  queryParams: [{ 
     redevelopment: { 
         type: 'boolean' 
     } 
  }],
  redevelopment: null
});

рд╡рд░реНрдХрд┐рдВрдЧ рдПрдореНрдмрд░ рдЯреНрд╡реАрдбрд▓: https://ember-twiddle.com/3afa1091106a91ce2c1734ae2998bc3f?openFiles=controllers.application.js%2C&route-%2F%3Fredevelopment%3Dtrue

рдХреНрдпреВрдкреА рдХрдм рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ? рдпрд╛ рдЖрдк рд╕рд┐рд░реНрдл рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рджреЗрдЦрдиреЗ рдкрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рд╣, рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛!

рдзрдиреНрдпрд╡рд╛рдж, @allthesignals , рдпрд╣ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?

{ key: undefined } рд╕реЗ ? _ (рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ) _
{ key: null } рд╕реЗ ?key
{ key: '' } рд╕реЗ ?key=
{ key: 'null' } рд╕реЗ ?key=null

рдЕрдЪреНрдЫреА рд╕реВрдЪреА!

рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░реВрдВрдЧрд╛:
{ key: undefined } рд╕реЗ [nothing] _ (рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ) _
{ key: null } рд╕реЗ [nothing] _ (рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ) _
{ key: '' } рд╕реЗ ?key
{ key: 'null' } рд╕реЗ ?key=null

рдФрд░ рд╕рдВрднрд╡рддрдГ:

{ key: false } рд╕реЗ [nothing] _ (рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ) _
{ key: true } рд╕реЗ ?key

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

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

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

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

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

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

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