I'm doing the second thing :) "set up a route which matched all requests" -> on my server side or in Angular ?
On Thursday, June 12, 2014 2:46:06 PM UTC+2, Chris Rhoden wrote: > > I think I may be confused – when you say that you are using server-side > routing, does that mean you want to trigger a new request to the server and > re-render the page? If that's the case, you shouldn't be using pushState at > all, but the standard $window.location APIs. pushState will not trigger a > new request. > > If you're doing something fancier, like fetching data from the server > asynchronously and re-rendering it in the Angular app, it will be less work > to do that within the Angular routing systems (either ngRoute or ui-router) > which totally support you doing this with help from the server. You'd just > need to set up a route which matched all requests and then trigger the > appropriate async request to the server. > > > > On Thu, Jun 12, 2014 at 8:37 AM, hyperN <[email protected] > <javascript:>> wrote: > >> Yes, because I manage routes using server side code, and if I do that >> than I would have to rewrite my routing and use Angular's, so this is >> solution is more convenient for me (as I plan to use this on only one page >> on my website) >> >> >> On Thursday, June 12, 2014 2:27:19 PM UTC+2, Chris Rhoden wrote: >> >>> Is there a reason you can't use the $location service with html5 mode >>> enabled? >>> >>> >>> On Thu, Jun 12, 2014 at 6:21 AM, hyperN <[email protected]> wrote: >>> >>>> I have problem using HTML 5 History API with Angular: >>>> >>>> Error: [$rootScope:infdig] 10 $digest() iterations reached. >>>> Aborting!Watchers fired in the last 5 iterations: [["fn: $locationWatch; >>>> newVal: 8; oldVal: 7"],["fn: $locationWatch; newVal: 9; oldVal: 8"],["fn: >>>> $locationWatch; newVal: 10; oldVal: 9"],["fn: $locationWatch; newVal: 11; >>>> oldVal: 10"],["fn: $locationWatch; newVal: 12; oldVal: 11"]] >>>> >>>> Then I've searched for solution and I've found out that this is known >>>> problem. Only "solution" I've managed to find, which worked, was wrapping >>>> history API inside setTimeout function, smth. like this: >>>> >>>> setTimeout(function() { >>>> history.pushState({}, "progress", url); >>>> },1000); >>>> >>>> One user mentioned that this worked for him also: >>>> >>>> $browser.url( state.url ); >>>> history.replaceState({}, state.title, state.url ); >>>> >>>> But no luck for me. $browser is Angular's private API which $location >>>> uses, interesting thing is that if I do smth. like this: >>>> >>>> var url = $browser.url() + "/progress"; >>>> $browser.url(url,true); >>>> console.log(window.location.href); >>>> >>>> My new url is logged but I don't see changes in address bar i.e. >>>> $browser.url() is shown. (in Chorme this proggres is shown for brief >>>> second >>>> then it disappears) >>>> >>>> Could this be due to my server side routing configuration ? (I'm using >>>> ASP.net <http://asp.net/> MVC). >>>> >>>> My question is, has anyone alse had any luck with $browser or found >>>> solution to this problem other than setTimeout ? >>>> >>>> -- >>>> 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. >>>> >>> >>> >>> >>> -- >>> chrisrhoden >>> >> -- >> 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] <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. >> > > > > -- > chrisrhoden > -- 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.
