I think in your getRoutes javascript function the URLs should not contain 
the #.  

// Define the routes function getRoutes() {
 
    var baseSiteUrlPath = '/app/';

    
    return [
        {
            url: '/',
            config: {

                templateUrl: baseSiteUrlPath + 'dashboard/dashboard.html',

                title: 'dashboard',
                settings: {
                    nav: 1,
                    content: '<i class="fa fa-dashboard"></i> Dashboard'
                }
            }
        }, {

            url: '/admin',
            config: {
                title: 'admin',
                templateUrl: baseSiteUrlPath + 'admin/admin.html',

                settings: {
                    nav: 2,
                    content: '<i class="fa fa-lock"></i> Admin'
                }
            }
        }
    ];}



But in your HTML the a href= will need to be "#/" and "#/admin".  (Maybe 
#!/ and #!/admin for your case, I didn't use the '!' in my applications).

On Tuesday, January 27, 2015 at 11:50:56 AM UTC-6, Brian Power wrote:
>
> I tried that, but is not finding the routes.
>
> When I first go to the angular page with this url
>
> http://localhost:15258/Office/Index/73
>
> i get this in the address bar
> http://localhost:15258/Office/Index/73/#!/
>
>
> It shows the view as expected
>
> Changing to <a href="#/admin">Admin</a> results in a url of 
> http://localhost:15258/Office/Index/73/#/admin
>
> So better than before.
>
> But that route is not found. I tried <a href="#*!*/admin">Admin</a> , 
> thats not found either. My route config looks like this. 
>
> // Configure the routes and route resolvers
> app.config(['$routeProvider','$locationProvider', 'routes', 
> routeConfigurator]);function routeConfigurator($routeProvider, 
> $locationProvider, routes) {
>  
>     $locationProvider.hashPrefix('!');
>  
>     routes.forEach(function (r) {
>         $routeProvider.when(r.url, r.config);
>     });
>     $routeProvider.otherwise({ redirectTo: '/' });
>    // $locationProvider.html5Mode(true);
>   }
>  // Define the routes function getRoutes() {
>  
>     var baseSiteUrlPath = '/app/';
>     
>     return [
>         {
>             url: '/',
>             config: {
>                 templateUrl: baseSiteUrlPath + 'dashboard/dashboard.html',
>                 title: 'dashboard',
>                 settings: {
>                     nav: 1,
>                     content: '<i class="fa fa-dashboard"></i> Dashboard'
>                 }
>             }
>         }, {
>             url: '#/admin',
>             config: {
>                 title: 'admin',
>                 templateUrl: baseSiteUrlPath + 'admin/admin.html',
>                 settings: {
>                     nav: 2,
>                     content: '<i class="fa fa-lock"></i> Admin'
>                 }
>             }
>         }
>     ];}
>
> Thanks again for your help Nicholas.
>
>
>
> On Tue, Jan 27, 2015 at 5:14 PM, Nicholas Smith <[email protected] 
> <javascript:>> wrote:
>
>> 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>Ind
>>> ex/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>Ind
>>> ex/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]> 
>>> 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/In
>>>>>> dex/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/In
>>>>>> dex/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].
>>>> 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/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.

Reply via email to