@@ -479,6 +479,15 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
479
479
*
480
480
* @description
481
481
* Reloads the current state by re-transitioning to it.
482
+ *
483
+ * @example
484
+ * <pre>
485
+ * var app angular.module('app', ['ui.router.state']);
486
+ *
487
+ * app.controller('ctrl', function ($state) {
488
+ * $state.reload();
489
+ * });
490
+ * </pre>
482
491
*/
483
492
$state . reload = function reload ( ) {
484
493
$state . transitionTo ( $state . current , $stateParams , { reload : true , inherit : false , notify : false } ) ;
@@ -497,6 +506,24 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
497
506
* only the parameters you'd like to update (while letting unspecified parameters
498
507
* inherit from the current state.
499
508
*
509
+ * Some examples:
510
+ *
511
+ * - `$state.go('contact.detail')` - will go to the `contact.detail` state
512
+ * - `$state.go('^')` - will go to a parent state
513
+ * - `$state.go('^.sibling')` - will go to a sibling state
514
+ * - `$state.go('.child.grandchild')` - will go to grandchild state
515
+ *
516
+ * @example
517
+ * <pre>
518
+ * var app = angular.module('app', ['ui.router.state']);
519
+ *
520
+ * app.controller('ctrl', function ($scope, $state) {
521
+ * $scope.changeState = function () {
522
+ * $state.go('contact.detail');
523
+ * };
524
+ * });
525
+ * </pre>
526
+ *
500
527
* @param {string } to Absolute State Name or Relative State Path.
501
528
* @param {object } params A map of the parameters that will be sent to the state,
502
529
* will populate $stateParams.
@@ -506,6 +533,31 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
506
533
return this . transitionTo ( to , params , extend ( { inherit : true , relative : $state . $current } , options ) ) ;
507
534
} ;
508
535
536
+ /**
537
+ * @ngdoc function
538
+ * @name ui.router.state.$state#transitionTo
539
+ * @methodOf ui.router.state.$state
540
+ *
541
+ * @description
542
+ * Low-level method for transitioning to a new state. {@link ui.router.state.$state#methods_go $state.go}
543
+ * uses `transitionTo` internally. `$state.go` is recommended in most situations.
544
+ *
545
+ * @example
546
+ * <pre>
547
+ * var app = angular.module('app', ['ui.router.state']);
548
+ *
549
+ * app.controller('ctrl', function ($scope, $state) {
550
+ * $scope.changeState = function () {
551
+ * $state.transitionTo('contact.detail');
552
+ * };
553
+ * });
554
+ * </pre>
555
+ *
556
+ * @param {string } to Absolute State Name or Relative State Path.
557
+ * @param {object } params A map of the parameters that will be sent to the state,
558
+ * will populate $stateParams.
559
+ * @param {object } options If Object is passed, object is an options hash.
560
+ */
509
561
$state . transitionTo = function transitionTo ( to , toParams , options ) {
510
562
toParams = toParams || { } ;
511
563
options = extend ( {
@@ -669,6 +721,30 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
669
721
return transition ;
670
722
} ;
671
723
724
+ /**
725
+ * @ngdoc function
726
+ * @name ui.router.state.$state#is
727
+ * @methodOf ui.router.state.$state
728
+ *
729
+ * @description
730
+ * Similar to {@link ui.router.state.$state#methods_includes $state.includes},
731
+ * but only checks for the full state name. If params is supplied then it will be
732
+ * tested for strict equality against the current active params object, so all params
733
+ * must match with none missing and no extras.
734
+ *
735
+ * @example
736
+ * <pre>
737
+ * $state.is('contact.details.item'); // returns true
738
+ * $state.is(contactDetailItemStateObject); // returns true
739
+ *
740
+ * // everything else would return false
741
+ * </pre>
742
+ *
743
+ * @param {string|object } stateName The state name or state object you'd like to check.
744
+ * @param {object } params A param object, e.g. `{sectionId: section.id}`, that you'd like
745
+ * to test against the current active state.
746
+ * @returns {boolean } Returns true or false whether its the state or not.
747
+ */
672
748
$state . is = function is ( stateOrName , params ) {
673
749
var state = findState ( stateOrName ) ;
674
750
@@ -683,6 +759,30 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
683
759
return isDefined ( params ) ? angular . equals ( $stateParams , params ) : true ;
684
760
} ;
685
761
762
+ /**
763
+ * @ngdoc function
764
+ * @name ui.router.state.$state#includes
765
+ * @methodOf ui.router.state.$state
766
+ *
767
+ * @description
768
+ * A method to determine if the current active state is equal to or is the child of the
769
+ * state stateName. If any params are passed then they will be tested for a match as well.
770
+ * Not all the parameters need to be passed, just the ones you'd like to test for equality.
771
+ *
772
+ * @example
773
+ * <pre>
774
+ * $state.includes("contacts"); // returns true
775
+ * $state.includes("contacts.details"); // returns true
776
+ * $state.includes("contacts.details.item"); // returns true
777
+ * $state.includes("contacts.list"); // returns false
778
+ * $state.includes("about"); // returns false
779
+ * </pre>
780
+ *
781
+ * @param {string } stateOrName A partial name to be searched for within the current state name.
782
+ * @param {object } params A param object, e.g. `{sectionId: section.id}`,
783
+ * that you'd like to test against the current active state.
784
+ * @returns {boolean } True or false
785
+ */
686
786
$state . includes = function includes ( stateOrName , params ) {
687
787
var state = findState ( stateOrName ) ;
688
788
if ( ! isDefined ( state ) ) {
@@ -702,6 +802,23 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
702
802
return validParams ;
703
803
} ;
704
804
805
+ /**
806
+ * @ngdoc function
807
+ * @name ui.router.state.$state#href
808
+ * @methodOf ui.router.state.$state
809
+ *
810
+ * @description
811
+ * A url generation method that returns the compiled url for the given state populated with the given params.
812
+ *
813
+ * @example
814
+ * <pre>
815
+ * expect($state.href("about.person", { person: "bob" })).toEqual("/about/bob");
816
+ * </pre>
817
+ *
818
+ * @param {string|object } stateOrName The state name or state object you'd like to generate a url from.
819
+ * @param {object } params An object of parameter values to fill the state's required parameters.
820
+ * @returns {string } url
821
+ */
705
822
$state . href = function href ( stateOrName , params , options ) {
706
823
options = extend ( { lossy : true , inherit : false , absolute : false , relative : $state . $current } , options || { } ) ;
707
824
var state = findState ( stateOrName , options . relative ) ;
@@ -723,6 +840,20 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
723
840
return url ;
724
841
} ;
725
842
843
+ /**
844
+ * @ngdoc function
845
+ * @name ui.router.state.$state#get
846
+ * @methodOf ui.router.state.$state
847
+ *
848
+ * @description
849
+ * Returns the state configuration object for any state by passing the name
850
+ * as a string. Without any arguments it'll return a array of all configured
851
+ * state objects.
852
+ *
853
+ * @param {string|object } stateOrName The name of the state for which you'd like
854
+ * to get the original state configuration object for.
855
+ * @returns {object } State configuration object or array of all objects.
856
+ */
726
857
$state . get = function ( stateOrName , context ) {
727
858
if ( ! isDefined ( stateOrName ) ) {
728
859
var list = [ ] ;
0 commit comments