Thanks Jeff! Your explanation makes sense. Do you have any idea how to accomplish what I'm doing without writing to $location?
I was thinking of a different approach earlier where I use ng-controller="blah" and ng-include="'views/blah.html'". This works but I need to package this app up so that I can throw it into any site I want and have the calculator render correctly. I understand that ng-include has strict policies about where it gets the html template; if I host the templates on a server, I believe I'll have to whitelist that server in the app. I'll have to read more about that approach. The main goal in using $location was to have a simple way to render a calculator app for an end-user (imagine, someone who knows very little about code). On Thursday, May 15, 2014 9:51:36 PM UTC-7, Jeff Hubbard wrote: > > Let me guess: you've got at least 2 apps that you're bootstrapping, and at > least 2 of them make use of $location? Because that's a big no-no. I spent > a few days tracking that down recently. If you really, truly do need to > write to $location in two apps... then I have no idea. But if all you need > is read access, then use $window.location instead. > > On Thursday, May 15, 2014 9:47:14 PM UTC-7, Mieczysław Daniel Dyba wrote: >> >> I'm building an app that is composed of several mortgage calculators. >> Each calculator is a separate route in the app. I'm bootstrapping the >> angular app so that I can render any number of calculators simply by adding >> a data attribute to a div tag that points to the correct route. >> >> Here is a Plunker to show you the gist of how I'm building the app: >> http://plnkr.co/edit/EAV7j8 >> >> I'm having trouble with injecting the $location service into the run >> function. These are the errors I'm getting: >> >> >> 1. Error: [$rootScope:infdig] 10 $digest() iterations reached. >> Aborting! Watchers fired in the last 5 iterations: [["fn: $locationWatch; >> newVal: 8; oldVal: 7","savvy; newVal: \"Savvy?\"; oldVal: >> undefined"],["fn: >> $locationWatch; newVal: 9; oldVal: 8","savvy; newVal: \"Savvy?\"; oldVal: >> undefined"],["fn: $locationWatch; newVal: 10; oldVal: 9","savvy; newVal: >> \"Savvy?\"; oldVal: undefined"],["fn: $locationWatch; newVal: 11; oldVal: >> 10","savvy; newVal: \"Savvy?\"; oldVal: undefined"],["fn: $locationWatch; >> newVal: 12; oldVal: 11","savvy; newVal: \"Savvy?\"; oldVal: undefined"]] >> >> http://errors.angularjs.org/1.2.16/$rootScope/infdig?p0=10&p1=%5B%5B%22fn%3…%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%5D<http://errors.angularjs.org/1.2.16/$rootScope/infdig?p0=10&p1=%5B%5B%22fn%3A%20%24locationWatch%3B%20newVal%3A%208%3B%20oldVal%3A%207%22%2C%22savvy%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%2C%5B%22fn%3A%20%24locationWatch%3B%20newVal%3A%209%3B%20oldVal%3A%208%22%2C%22savvy%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%2C%5B%22fn%3A%20%24locationWatch%3B%20newVal%3A%2010%3B%20oldVal%3A%209%22%2C%22savvy%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%2C%5B%22fn%3A%20%24locationWatch%3B%20newVal%3A%2011%3B%20oldVal%3A%2010%22%2C%22savvy%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%2C%5B%22fn%3A%20%24locationWatch%3B%20newVal%3A%2012%3B%20oldVal%3A%2011%22%2C%22savvy%3B%20newVal%3A%20%5C%22Savvy%3F%5C%22%3B%20oldVal%3A%20undefined%22%5D%5D>at >> >> >> https://code.angularjs.org/1.2.16/angular.js:78:12<https://code.angularjs.org/1.2.16/angular.js>at >> Scope.$digest ( >> >> https://code.angularjs.org/1.2.16/angular.js:12290:19<https://code.angularjs.org/1.2.16/angular.js>) >> >> at Scope.$apply >> (https://code.angularjs.org/1.2.16/angular.js:12516:24<https://code.angularjs.org/1.2.16/angular.js>) >> >> at done >> (https://code.angularjs.org/1.2.16/angular.js:8204:45<https://code.angularjs.org/1.2.16/angular.js>) >> >> at completeRequest ( >> >> https://code.angularjs.org/1.2.16/angular.js:8412:7<https://code.angularjs.org/1.2.16/angular.js>) >> >> at XMLHttpRequest.xhr.onreadystatechange ( >> >> https://code.angularjs.org/1.2.16/angular.js:8351:11<https://code.angularjs.org/1.2.16/angular.js> >> ) angular.js:9778 >> >> >> 1. Uncaught Error: [$rootScope:infdig] 10 $digest() iterations >> reached. Aborting! Watchers fired in the last 5 iterations: [["fn: >> $locationWatch; newVal: 8; oldVal: 7","savvy; newVal: \"Savvy?\"; oldVal: >> undefined"],["fn: $locationWatch; newVal: 9; ol...<omitted>...5D >> angular.js:78 >> >> >> 1. Uncaught Error: [$rootScope:infdig] 10 $digest() iterations >> reached. Aborting! Watchers fired in the last 5 iterations: [["fn: >> $locationWatch; newVal: 19; oldVal: 18","savvy; newVal: \"Savvy?\"; >> oldVal: >> undefined"],["fn: $locationWatch; newVal: 20;...<omitted>...5D >> angular.js:78 >> >> >> >> Should I not be calling path on $location inside the run function? It >> looks like calling path triggers several calls to $digest. I'm reading >> through the source code to understand what I'm doing wrong but I figured >> someone here might beat me to it and give me a good explanation. >> >> Thanks in advance! >> > -- 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.
