Your links within the HTML will need to contain the #, so they'll look like: <a href="#/">Dashboard</a> <a href="#/admin">Admin</a>
On Tuesday, January 27, 2015 at 11:05:54 AM UTC-6, Brian Power wrote: > > "It sounds like you have a .NET page serving up your angular SPA app at > this url: > http://www.blah.com/Office/ <http://www.blah.com/Office/?officeid=52> > Index/73/" > > Yes , thats correct. http://www.blah.com/Office/ > <http://www.blah.com/Office/?officeid=52>Index/73/" is a .net cshtml page > with<html ng-app="app">. It then does a *<div > data-ng-include="'/app/layout/shell.html'"></div>* > > shell.html is the angular layout. > > "Any routes you define within that SPA app are relative to that. So if > you have a route define as "/admin" the URL for it would be > http://www.blah.com/Office/ <http://www.blah.com/Office/?officeid=52> > Index/73/#!/admin" > > This not happening for me. Are you saying I can have a <a href="/"> > dashboard</a> with in my angular layout, and it will know I really want <a > href="Office/ <http://www.blah.com/Office/?officeid=52>Index/73/#!/"> > dashboard</a> ? > > I can live with #! in my url for sure. > > > > On Tue, Jan 27, 2015 at 4:49 PM, Nicholas Smith <[email protected] > <javascript:>> wrote: > >> It sounds like you have a .NET page serving up your angular SPA app at >> this url: >> http://www.blah.com/Office/ <http://www.blah.com/Office/?officeid=52> >> Index/73/ >> >> Any routes you define within that SPA app are relative to that. So if >> you have a route define as "/admin" the URL for it would be >> http://www.blah.com/Office/ <http://www.blah.com/Office/?officeid=52> >> Index/73/#!/admin >> >> The .NET side will get the request for "http://www.blah.com/Office/ >> <http://www.blah.com/Office/?officeid=52>Index/73/" and serve up >> whatever your .NET code generates for that URL. Presumably contains your >> html and javascript for your SPA app. Once the pages loads and angular >> runs, it examines the rest of the URL after the #! to determine which route >> to use. It will see "http://www.blah.com/Office/ >> <http://www.blah.com/Office/?officeid=52>Index/73/#!/admin" and only use >> the "/admin" when matching against your route configs. >> >> Also I see your original post you actually want URLs like: >> http://www.blah.com/Office/52/staff >> <http://www.blah.com/Office/?officeid=52/staff> >> http://www.blah.com/Office/52/budgets >> <http://www.blah.com/Office/?officeid=52/budgets> >> >> If you don't want the #! in your URLs you'll need to look into html5 mode >> see https://code.angularjs.org/1.3.9/docs/guide/$location >> I don't recommend going that route, it's extra complexity to setup within >> your Angular app, and on the .NET side to make it work. If you can live >> with having the # in your URLs, I'd stick with that for now. >> >> >> >> >> >> >> >> On Tuesday, January 27, 2015 at 10:26:36 AM UTC-6, Brian Power wrote: >>> >>> Thanks for your reply Nicholas. >>> >>> How can my angular routes stay as they are the same? '/' points to >>> http://www.blah.com/ >>> <http://www.google.com/url?q=http%3A%2F%2Fwww.blah.com%2FOffice%2FIndex%2F73%2F%23%2F&sa=D&sntz=1&usg=AFQjCNGv33lTp_RF-rWvxxmKJ6hHJAV6EQ> >>> and >>> '/admin' points to http://www.blah.com/ >>> <http://www.google.com/url?q=http%3A%2F%2Fwww.blah.com%2FOffice%2FIndex%2F73%2F%23%2F&sa=D&sntz=1&usg=AFQjCNGv33lTp_RF-rWvxxmKJ6hHJAV6EQ>admin. >>> >>> How do I tell angular "You start at /Office/Index/73/#/ >>> <http://www.google.com/url?q=http%3A%2F%2Fwww.blah.com%2FOffice%2FIndex%2F73%2F%23%2F&sa=D&sntz=1&usg=AFQjCNGv33lTp_RF-rWvxxmKJ6hHJAV6EQ>" >>> >>> rather than '/' ? I think I'm misunderstanding something fundamental here. >>> >>> >>> thanks >>> Brian >>> >>> >>> >>> On Tuesday, January 27, 2015 at 3:10:09 PM UTC, Nicholas Smith wrote: >>>> >>>> The routes "/" and "/admin" are relative to the URL serving your >>>> angular app. So if your app is at "http://www.blah.com/Office/ >>>> Index/73/", then your dashboard would be at " >>>> http://www.blah.com/Office/Index/73/#/ >>>> <http://www.google.com/url?q=http%3A%2F%2Fwww.blah.com%2FOffice%2FIndex%2F73%2F%23%2F&sa=D&sntz=1&usg=AFQjCNGv33lTp_RF-rWvxxmKJ6hHJAV6EQ>" >>>> >>>> and your admin screen would be "http://www.blah.com/Office/ >>>> Index/73/#/admin". Your routes can stay as-is. As far as getting the >>>> "73" value into your angular app there are a few ways to do it. I'm not a >>>> .NET developer but I think whatever page or script is building the " >>>> http://www.blah.com/Office/Index/73" page could inject the "73" as a >>>> value into your page, something like: >>>> >>>> <script>var office_id=73;</script> >>>> >>>> >>>> >>>> On Tuesday, January 27, 2015 at 6:41:22 AM UTC-6, Brian Power wrote: >>>>> >>>>> Hi Guys, >>>>> >>>>> I read the other threads on this,but I'm still confused. >>>>> >>>>> We are building a web site with .net mvc. We have one complex entity, >>>>> lets say it an "Office". An office has staff, resources, budgets etc. >>>>> A user can have many offices to manage. We have other areas of the system >>>>> already built with just .Net. I have a .net view with a list of >>>>> offices. When the user clicks on one they're sent to the spa for that >>>>> Office. The request goes to a .net controller called >>>>> OfficeController. The Index method takes an Id. I want its view to be an >>>>> Angular spa. >>>>> >>>>> My route to the spa is http://www.blah.com/Office/ >>>>> <http://www.blah.com/Office/?officeid=52>Index/73/#!/ >>>>> >>>>> My angular stuff is in a folder called 'app' at the root of the >>>>> website. Within the spa I have links to other views of the spa. I want it >>>>> to have routes like this. >>>>> >>>>> http://www.blah.com/Office/52/staff >>>>> <http://www.blah.com/Office/?officeid=52/staff> >>>>> http://www.blah.com/Office/52/budgets >>>>> <http://www.blah.com/Office/?officeid=52/budgets> >>>>> >>>>> I'm using John Papa's HotTowel demo as a starting point for my spa. In >>>>> his routing config. He has this... >>>>> >>>>> return [ >>>>> { >>>>> url: '/', >>>>> config: { >>>>> templateUrl: 'app/dashboard/dashboard.html', >>>>> title: 'dashboard', >>>>> settings: { >>>>> nav: 1, >>>>> content: '<i class="fa fa-dashboard"></i> >>>>> Dashboard' >>>>> } >>>>> } >>>>> }, { >>>>> url: '/admin', >>>>> config: { >>>>> title: 'admin', >>>>> templateUrl: app/admin/admin.html', >>>>> settings: { >>>>> nav: 2, >>>>> content: '<i class="fa fa-lock"></i> Admin' >>>>> } >>>>> } >>>>> } >>>>> ]; >>>>> >>>>> >>>>> >>>>> When I can access these views via the the browser with >>>>> http://www.blah.com/Office/ >>>>> <http://www.blah.com/Office/?officeid=52>Index/73/#!/ and >>>>> http://www.blah.com/Office/ >>>>> <http://www.blah.com/Office/?officeid=52>Index/73/#!/Admin . Do I need to >>>>> "pass in" something like "Office/ >>>>> <http://www.blah.com/Office/?officeid=52>Index/73/#!/" to angular and >>>>> build dynamic routes? >>>>> >>>>> >>>>> >>>>> Thanks for reading >>>>> >>>>> Brian >>>>> >>>>> >>>>> >>>>> >>>>> -- >> 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/TuLtaVNh40A/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.
