so to fix that, you need to convert this route for ie9 into
domain.com/#!/v2/challenges/new from domain.com/v2/challenges/new.

you could also may be look into polyfil
https://github.com/browserstate/history.js/ might be something that you can
work around.



On Tue, Apr 29, 2014 at 12:30 PM, Yale Kaul <[email protected]> wrote:

> That is correct.
>
> On Monday, April 28, 2014 8:38:14 PM UTC-7, Alesei N wrote:
>>
>> correct me if I am wrong, if you load */v2/challenges/new* in ie9, you
>> get base route resolution in angular app right? instead of
>> */v2/challenges/new* you get default page loaded right?
>>
>>
>> On Mon, Apr 28, 2014 at 9:20 PM, Yale Kaul <[email protected]> wrote:
>>
>>> That mostly makes sense to me.
>>>
>>> The part I'm still confused about is 1.2.
>>>
>>> I'm able to make the server redirect to */#/v2/challenges/new* for IE9,
>>> but how will Angular know to do the same thing at */#/v2/challenges/new*and
>>> */v2/challenges/new* (no hashbang)?
>>>
>>> In other words, I load */v2/challenges/new* in Chrome and serve the
>>> index route, which has all my Angular routes set up. One of those routes is:
>>>
>>> $routeProvider
>>>         .when('/v2/challenges/new', {
>>>             templateUrl: '/assets/templates/new.html',
>>>             controller: 'BuildController'
>>>
>>> ... so Angular correctly loads the correct controller and template.
>>>
>>> But if I load* /v2/challenges/new* in IE9, and then I configure Rails
>>> to redirect to* /#/v2/challenges/new, *what should happen then? I
>>> realize that answer is probably fairly specific to my app, but maybe
>>> there's a  general answer.
>>>
>>> Again, I really appreciate your help so far. This is super confusing to
>>> me.
>>>
>>> (Sorry for the odd delay; had to step away from this problem for a few
>>> days)
>>>
>>>
>>>
>>>
>>> On Thursday, April 24, 2014 12:36:16 PM UTC-7, Alesei N wrote:
>>>>
>>>>  I think this should make it bit more clear:
>>>> 1) User enters site at /v2/challenges/new
>>>>    1.1) default: browser that supports html5 history would then serve
>>>> index view from that route, index view has all the references to JS/CSS.
>>>> Angular app loads, sees its at /v2/challenges/new and does what it
>>>> needs to do for that route.
>>>>    1.2) user agent is ie9: you would have to redirect them to root of
>>>> domain.com plus appending this route to it via hash bang domain.com/#
>>>> /v2/challenges/new. So at the end you actually redirecting to
>>>> domain.com/#/v2/challenges/new.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Apr 24, 2014 at 11:15 AM, Yale Kaul <[email protected]> wrote:
>>>>
>>>>> Thanks so much for your reply, Alesei.
>>>>>
>>>>> So if I'm understanding you correctly, the flow for an IE9 visitor is
>>>>> this:
>>>>>
>>>>> 1. User loads /v2/challenges/new,
>>>>> 2. Angular rewrites to /#!/v2/challenges/new
>>>>> 3. Browser ignores everything after #, and loads '/'
>>>>> 4. Server serves up '/', which must have references to Angular scripts
>>>>> --
>>>>> 5. This is the part I'm still not understanding. Once I get to the
>>>>> root route, the Angular router takes over? How does it differentiate
>>>>> between someone requesting /#!/v2/challenges/new  and someone
>>>>> requesting root route?
>>>>>
>>>>> Thanks again!
>>>>>
>>>>>
>>>>> On Thursday, April 24, 2014 6:02:36 AM UTC-7, Alesei N wrote:
>>>>>>
>>>>>> it means, all the routes that you have set up in your SPA, should
>>>>>> have corresponding Rails routes. So when you are hitting that route
>>>>>> directly in browser, your rails app can serve html that has references to
>>>>>> your angular app javascript and styles.
>>>>>>
>>>>>> In case of hash bang and ie9 it depends how far you want to go, your
>>>>>> root route, should serve mark up that has references to javascript and
>>>>>> styles, so once app loads it can react to /#!/v2/challenges/new.
>>>>>> There are other things you can do, for example if some one comes from
>>>>>> normal url from search, but user agent is ie9, you could redirect to root
>>>>>> with hash bang equivalent of that route.
>>>>>>
>>>>>>
>>>>>> On Wednesday, April 23, 2014 3:54:44 PM UTC-5, Yale Kaul wrote:
>>>>>>>
>>>>>>>  I've been working on an AngularJS/Rails app that must support IE9.
>>>>>>> From what I've read, I should set html5Mode to true in my AngularJS 
>>>>>>> config,
>>>>>>> which will use the HTML5 History API for browsers that support it, and 
>>>>>>> fall
>>>>>>> back to hashbang URLs for older browsers. All of the Angular stuff in my
>>>>>>> app is rooted at */v2/challenges/.*
>>>>>>>
>>>>>>> In the fantastic ng-book <https://www.ng-book.com/>, it says:
>>>>>>>
>>>>>>> "The back-end server will have to support URL rewriting on the
>>>>>>> server side. To support HTML5 mode, the server will have to make sure to
>>>>>>> deliver the index.html page for all apps. That ensures that our Angular 
>>>>>>> app
>>>>>>> will handle the route."
>>>>>>>
>>>>>>> What does that mean specifically?
>>>>>>>
>>>>>>> If my AngularJS content is at /v2/challenges/new (which appears as
>>>>>>> /#!/v2/challenges/new in IE9),
>>>>>>>
>>>>>>> ...what does that mean for me in terms of the URL rewriting I need
>>>>>>> to do on the server side?
>>>>>>>
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>  --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "AngularJS" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/angular/0cFJSAi68xw/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/angular.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "AngularJS" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>> topic/angular/0cFJSAi68xw/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/angular.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "AngularJS" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/angular/0cFJSAi68xw/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to