From 64e780546b9a6de3c9ca4594e73c8fde2bb8218d Mon Sep 17 00:00:00 2001 From: Dominic Alie Date: Tue, 28 Jun 2016 14:09:49 -0400 Subject: [PATCH] Add method overload to allow inline StickyState object --- ui-router-extras/ui-router-extras-tests.ts | 81 ++++++++++++++++++++++ ui-router-extras/ui-router-extras.d.ts | 4 ++ 2 files changed, 85 insertions(+) diff --git a/ui-router-extras/ui-router-extras-tests.ts b/ui-router-extras/ui-router-extras-tests.ts index 045a3049c7..b50f034de7 100644 --- a/ui-router-extras/ui-router-extras-tests.ts +++ b/ui-router-extras/ui-router-extras-tests.ts @@ -45,4 +45,85 @@ myApp.config(($stateProvider: angular.ui.IStateProvider, $stickyStateProvider: a $stickyStateProvider.enableDebug(true); $stateProvider.state(state); + + $stateProvider.state({ + name: 'test', + sticky: true, + dsr: { + default: 'substate', + params: ['param1', 'param2'], + fn: function ($dsr$) { + + return $dsr$.to; + } + }, + onInactivate: function ($state: angular.ui.IState) { + var iAmInjectedByInjector = $state; + }, + onReactivate: function ($state: angular.ui.IState) { + var iAmInjectedByInjector = $state; + }, + controller: ($previousState: angular.ui.IPreviousStateService, $deepstateRedirect: angular.ui.IDeepStateRedirectService) => { + $previousState.memo('test-memo1'); + $previousState.memo('test-memo2', 'test-state-name2'); + $previousState.memo('test-memo3', 'test-state-name3', {}); + $previousState.forget('test-memo3'); + $previousState.go('test-memo2', { + location: true, + notify: true + }); + $previousState.get(); + $previousState.get('test-memo1'); + + $deepstateRedirect.reset('statename1', { + 'stateParam1': ['value1', 'value2'], + 'stateParam2': 'value' + }); + }, + views: { + //named views are mandatory + 'name1': {} + } + }); + + $stateProvider.state('name1', { + name: 'test', + sticky: true, + dsr: { + default: 'substate', + params: ['param1', 'param2'], + fn: function ($dsr$) { + + return $dsr$.to; + } + }, + onInactivate: function ($state: angular.ui.IState) { + var iAmInjectedByInjector = $state; + }, + onReactivate: function ($state: angular.ui.IState) { + var iAmInjectedByInjector = $state; + }, + controller: ($previousState: angular.ui.IPreviousStateService, $deepstateRedirect: angular.ui.IDeepStateRedirectService) => { + $previousState.memo('test-memo1'); + $previousState.memo('test-memo2', 'test-state-name2'); + $previousState.memo('test-memo3', 'test-state-name3', {}); + $previousState.forget('test-memo3'); + $previousState.go('test-memo2', { + location: true, + notify: true + }); + $previousState.get(); + $previousState.get('test-memo1'); + + $deepstateRedirect.reset('statename1', { + 'stateParam1': ['value1', 'value2'], + 'stateParam2': 'value' + }); + }, + views: { + //named views are mandatory + 'name1': {} + } + }); + }); diff --git a/ui-router-extras/ui-router-extras.d.ts b/ui-router-extras/ui-router-extras.d.ts index 0c4673e915..ecc8d7e6ba 100644 --- a/ui-router-extras/ui-router-extras.d.ts +++ b/ui-router-extras/ui-router-extras.d.ts @@ -148,4 +148,8 @@ declare namespace angular.ui { registerStickyState(state: IStickyState): void; } + interface IStateProvider extends angular.IServiceProvider { + state(config: IStickyState): IStateProvider; + state(name: string, config: IStickyState): IStateProvider; + } }