Ember.js: рдЧрд░реНрднрдкрд╛рдд рдХреЗ рдмрд╛рдж рдЙрддреНрд╕реБрдХ рдпреВрдЖрд░рдПрд▓ рд╕рд╛рдл рдХрд░реЗрдВ

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

рдИрдЧрд░ URL рдЕрдкрдбреЗрдЯ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рд░рдирдЕрдк рдореЗрдВ рдЧрд░реНрднрдкрд╛рдд рдпрд╛ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рд░рди рд▓реВрдк рдореЗрдВ рдЧрд░реНрднрдкрд╛рдд рдФрд░ рд╕рдВрдХреНрд░рдордг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд╡реЗрджрди рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

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

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

рдореИрдВрдиреЗ @machty рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдФрд░ рд╣рдо рд╕рд╣рдордд рд╣реБрдП рдХрд┐ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдЙрддреНрд╕реБрдХ URL рдкреБрд╢ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЧрд░реНрднрдкрд╛рдд рд╣реЛрдиреЗ рдкрд░ history.back() рдпрд╛ рд╕рдорд╛рди рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИред

Bug Inactive Needs Submitter Response

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

рдпрд╣ https://github.com/tildeio/router.js/pull/197 (2.10.0-beta.3 + рдореЗрдВ) рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

V2.10.0-beta.3 рдХреЗ рдЦрд┐рд▓рд╛рдл рдбреЗрдореЛ: http://emberjs.jsbin.com/yeqisuh/1

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

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рдЕрднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рднрд▓реЗ рд╣реА рдореИрдВ transition.abort() willTransition рдорд╛рд░реНрдЧ рдХрд╛ рд╣реБрдХ рдХрд░реВрдВред URL рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рдерд╛ред

: +1:

@ рдпрджрд┐ рдЖрдк рдЭреБрдХрд╛рд╡ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдкрд░ рдПрдХ рдХрджрдо рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ; lemme рдЖрдкрдХреА рд░реБрдЪрд┐ / рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ

рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрднреА рдирд╣реАрдВред

: +1: рдПрдкреАрдЖрдИ рдбреЙрдХреНрд╕ рдореЗрдВ willTransition рдирдореВрдирд╛ рдХреЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рддрдХ рджреМрдбрд╝рд╛ред URL рдХреЛ рддрдм рднреА рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм abort рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрдирдГ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ jsbin рдмрдирд╛рдпрд╛: http://emberjs.jsbin.com/tijebi/1

@ ef4 рдЕрднреА рднреА рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдпрд╣ рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪреА рдореЗрдВ рдХрдо рд╣реИред

рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд╕ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ

рд╣рдо рдЙрддреНрд╕реБрдХ URL рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрджрд┐ # 9919 рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрдВрдж рд╣реЛ рд░рд╣реЗ рд╣реИрдВ

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдЕрднреА __:

// app/routes/your-route.js

export default Ember.Route.extend({
    // ...
    actions: {
        willTransition(transition) {
            var model = this.controller.get('model');
            if (
                model.get('hasDirtyAttributes') && 
                !confirm("You're going to discard all unsaved changes. Are you sure?")
            ) {
                transition.abort();

                // Custom revert of Back button result
                var oldURL = this.router.generate(this.routeName, model);
                var newURL = this.router.location.getURL();
                if (oldURL != newURL) {
                    this.router.location.setURL(oldURL);
                }
            } else {
                return true;
            }
        }
    }
});

рдореБрдЭреЗ рд╕реАрдзреЗ this.router.location рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ (рд╕реНрдерд╛рди рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ _ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП)

рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рд╕реЗ рез.резрей.рек рддрдХ рдЕрдкрдиреЗ jsbin рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ: http://emberjs.jsbin.com/lohekasuhu/edit?html , css, js

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрднреА рднреА 1.13.11 рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

URL рдореЗрдВ afterModel рдкрд░рд┐рдгрд╛рдо рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЯреВрдЯрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ abort() рдХреЙрд▓ рдХрд░рдирд╛ред

рдмрд╛рдж рдореЗрдВ transitionToRoute рдХреЙрд▓ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд░реНрдЧ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ, рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдЕрдм router.location рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, getURL рдФрд░ setURL рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВрдиреЗ @bcardarella рдХреЗ [jsbin рдХреЛ 2.5.0] рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдлрд┐рд░ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ https://github.com/tildeio/router.js/pull/197 (2.10.0-beta.3 + рдореЗрдВ) рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

V2.10.0-beta.3 рдХреЗ рдЦрд┐рд▓рд╛рдл рдбреЗрдореЛ: http://emberjs.jsbin.com/yeqisuh/1

@rwjblue рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЧрд░реНрднрдкрд╛рдд рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рддрдп рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдореНрдмрд░ 2.12.0 рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореИрдВ рдПрдХ рдРрд╕реЗ рдорд╛рд░реНрдЧ рдкрд░ рд╕рдВрдХреНрд░рдордг рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореЙрдбрд▓ рд╣реБрдХ рдореЗрдВ рдирд┐рд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ url рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕рдВрдХреНрд░рдордг рдирд┐рд░рд╕реНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпрд╛ рдЕрдиреНрдп рдЕрднреА рднреА transition#abort рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

@kanderek рд╣рд╛рдВ, рдореИрдВ рдЕрднреА рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВред рдореИрдВ 2.11.3 рдкрд░ рд╣реВрдВред

рдирдорд╕реНрддреЗ,
2.14 рдИрдореНрдмрд░ рдХреЗ рд╕рд╛рде, рдореБрджреНрджрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ

2.11.3 рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдмрджрд╕реВрд░рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдВрдиреЗ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдкрд╛рдпрд╛

//right after an aborted transition
if (window.history) {
  window.history.forward();
}

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЙрд╕ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдо рдирд╣реАрдВ рд╣реИ ^

+1

рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ! рдореИрдВ реи.резреи.реи рдкрд░ рд╣реВрдВ

рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рдлрд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣рд╛рдБ @wagenet рдПрдореНрдмрд░ 3.1.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
https://github.com/btecu/ember-issues/tree/5210

@SirZach @adamreisnz @bcardarella @bschouwerwou @btecu @cibernox @dkorenblyum @ EF4 @kanderek @kanongil @kottenator @machty @mutewinter @pixelhandler @ рд░рд╛рдлреЗрд▓-paiva @rwjblue @stefanpenner @wagenet @woprandi, рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рд╢рд╛рдпрдж рд╣рдо рдмрдВрдж рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕рдХрд╛ рдПрдХ рдирдпрд╛ рдкреНрд░рдЬрдирди рдмрдирд╛рдПрдВ, рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

@btecu рдЖрдк рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдореНрдмрд░ 3.5 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

+1 рдЕрдм рдЗрд╕ рд░реВрдк рдореЗрдВ рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдПрдХ рдкреГрд╖реНрда рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ window.history.go (-1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ (рд╕рдВрдХреНрд░рдордг рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЖрджрд┐ рдФрд░ async рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реЛрдб рдХрд░рдирд╛) рдЬреЛ рдереЛрдбрд╝реА рджреЗрд░ рддрдХ рдЪрд▓рддрд╛ рд╣реИ, рдлрд┐рд░ рдЕрдВрддрддрдГ рд╕рдВрдХреНрд░рдордг рд╡рд╛рдкрд╕ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ url рддреБрд░рдВрдд рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрднрд╡рдд: рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрддрд┐рд╣рд╛рд╕ рдПрдкреАрдЖрдИ рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

рдмрд╕ 3.9.1 рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛

рдпрд╣ рдореБрджреНрджрд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рдмрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдареАрдХ рд╣реЛ рдЧрдпрд╛ред рд╣рдо рдЕрдм рдЙрддреНрд╕реБрдХ URL рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред

@miguelcobain рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рдЬрдирди рдХреЛ 3.9.1 рдкрд░ рдПрдХ рдирдП рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрдЪрд┐рдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд╢реАрд░реНрд╖ рдкрд░рд┐рдгрд╛рдо рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрдЬрд╛ рдерд╛ рдЬреЛ рдЕрднреА рднреА рдПрдХ рдЪреАрдЬ рд▓рдЧрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЕрджреНрдпрддрди рд╕реНрдирд┐рдкреЗрдЯ рдкреЗрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдЗрд╕ рдкрд╛рд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ (рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ):

  <strong i="6">@service</strong> router

  <strong i="7">@action</strong> 
  willTransition(transition) {
    if (!transition.to.find(route => route.name === this.routeName) && !confirm('confirm?')) {
      transition.abort()
      let oldURL = this.router.currentURL;
      let newURL = this.router.location.getURL();
      if (oldURL != newURL) {
          this.router.location.setURL(oldURL);
      }
    }
    return true;
  }

рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡ @kottenator (https://github.com/emberjs/ember.js/issues/5210#issuecomment-122033542) рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИред

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

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

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

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

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

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

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