re: history.js... Yes, I was briefly considering that, but I imagined that 
I would have to monkeypatch Angular in order to make it work

On Tuesday, April 29, 2014 12:41:32 PM UTC-7, Alesei N wrote:
>
> 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]<javascript:>
> > 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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> 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