diff --git a/angularjs/angular-route-tests.ts b/angularjs/angular-route-tests.ts index 4ca1460674..3607b6f137 100644 --- a/angularjs/angular-route-tests.ts +++ b/angularjs/angular-route-tests.ts @@ -10,16 +10,27 @@ declare var $routeProvider: ng.route.IRouteProvider; $routeProvider .when('/projects/:projectId/dashboard', { controller: 'I am a string', - templateUrl: '', + templateUrl: "So am I", caseInsensitiveMatch: true, reloadOnSearch: false }) - .when('/projects/:projectId/dashboard', { - controller: function() { + .when('/projects/:projectId/dashboard2', { + controller: function () { //Look at me - I'm a function! }, - templateUrl: '', - caseInsensitiveMatch: true, - reloadOnSearch: false + template: function ($routeParams?: ng.route.IRouteParamsService) { + return "I return a string" + } }) - .otherwise({redirectTo: '/'}); + .when('/projects/:projectId/dashboard3', { + controllerAs: 'I am a string', + template: "Yup. String" + }) + .when('/projects/:projectId/dashboard4', { + controller: 'I am a string', + templateUrl: function ($routeParams?: ng.route.IRouteParamsService) { + return "I return a string" + } + }) + .otherwise({ redirectTo: '/' }) + .otherwise({ redirectTo: ($routeParams?: ng.route.IRouteParamsService, $locationPath?: string, $locationSearch?: any) => "" }); diff --git a/angularjs/angular-route.d.ts b/angularjs/angular-route.d.ts index 49df7b04be..936b42589e 100644 --- a/angularjs/angular-route.d.ts +++ b/angularjs/angular-route.d.ts @@ -59,7 +59,7 @@ declare module ng.route { * * {Array.} - route parameters extracted from the current $location.path() by applying the current route */ - template?: string; + template?: string|{($routeParams?: ng.route.IRouteParamsService) : string;} /** * {string=|function()=} * Path or function that returns a path to an html template that should be used by ngView. @@ -68,14 +68,14 @@ declare module ng.route { * * {Array.} - route parameters extracted from the current $location.path() by applying the current route */ - templateUrl?: any; + templateUrl?: string|{ ($routeParams?: ng.route.IRouteParamsService): string; } /** * {Object.=} - An optional map of dependencies which should be injected into the controller. If any of these dependencies are promises, the router will wait for them all to be resolved or one to be rejected before the controller is instantiated. If all the promises are resolved successfully, the values of the resolved promises are injected and $routeChangeSuccess event is fired. If any of the promises are rejected the $routeChangeError event is fired. The map object is: * * - key - {string}: a name of a dependency to be injected into the controller. * - factory - {string|function}: If string then it is an alias for a service. Otherwise if function, then it is injected and the return value is treated as the dependency. If the result is a promise, it is resolved before its value is injected into the controller. Be aware that ngRoute.$routeParams will still refer to the previous route within these resolve functions. Use $route.current.params to access the new route parameters, instead. */ - resolve?: {[key: string]: any}; + resolve?: {[key: string]: any}; /** * {(string|function())=} * Value to update $location path with and trigger route redirection. @@ -87,7 +87,7 @@ declare module ng.route { * - {Object} - current $location.search() * - The custom redirectTo function is expected to return a string which will be used to update $location.path() and $location.search(). */ - redirectTo?: any; + redirectTo?: string|{($routeParams?: ng.route.IRouteParamsService, $locationPath?: string, $locationSearch?: any) : string}; /** * Reload route when only $location.search() or $location.hash() changes. *