@@ -335,8 +335,85 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
335
335
return this ;
336
336
}
337
337
338
- // .state(state)
339
- // .state(name, state)
338
+ /**
339
+ * @ngdoc function
340
+ * @name ui.router.state.$stateProvider#state
341
+ * @methodOf ui.router.state.$stateProvider
342
+ *
343
+ * @description
344
+ * Registers a state configuration under a given state name. The stateConfig object
345
+ * has the following acceptable properties.
346
+ *
347
+ * - [`template`, `templateUrl`, `templateProvider`] - There are three ways to setup
348
+ * your templates.
349
+ *
350
+ * - `{string|object}` - template - String HTML content, or function that returns an HTML
351
+ * string.
352
+ * - `{string}` - templateUrl - String URL path to template file OR function,
353
+ * that returns URL path string.
354
+ * - `{object}` - templateProvider - Provider function that returns HTML content
355
+ * string.
356
+ *
357
+ * - [`controller`, `controllerProvider`] - A controller paired to the state. You can
358
+ * either use a controller, or a controller provider.
359
+ *
360
+ * - `{string|object}` - controller - Controller function or controller name.
361
+ * - `{object}` - controllerProvider - Injectable provider function that returns
362
+ * the actual controller or string.
363
+ *
364
+ * - `{object}` - resolve - A map of dependencies which should be injected into the
365
+ * controller.
366
+ *
367
+ * - `{string}` - url - A url with optional parameters. When a state is navigated or
368
+ * transitioned to, the `$stateParams` service will be populated with any
369
+ * parameters that were passed.
370
+ *
371
+ * - `{object}` - params - An array of parameter names or regular expressions. Only
372
+ * use this within a state if you are not using url. Otherwise you can specify your
373
+ * parameters within the url. When a state is navigated or transitioned to, the
374
+ * $stateParams service will be populated with any parameters that were passed.
375
+ *
376
+ * - `{object}` - views - Use the views property to set up multiple views.
377
+ * If you don't need multiple views within a single state this property is not
378
+ * needed. Tip: remember that often nested views are more useful and powerful
379
+ * than multiple sibling views.
380
+ *
381
+ * - `{boolean}` - abstract - An abstract state will never be directly activated,
382
+ * but can provide inherited properties to its common children states.
383
+ *
384
+ * - `{object}` - onEnter - Callback function for when a state is entered. Good way
385
+ * to trigger an action or dispatch an event, such as opening a dialog.
386
+ *
387
+ * - `{object}` - onExit - Callback function for when a state is exited. Good way to
388
+ * trigger an action or dispatch an event, such as opening a dialog.
389
+ *
390
+ * - `{object}` - data - Arbitrary data object, useful for custom configuration.
391
+ *
392
+ * @example
393
+ * <pre>
394
+ * // The state() method takes a unique stateName (String) and a stateConfig (Object)
395
+ * $stateProvider.state(stateName, stateConfig);
396
+ *
397
+ * // stateName can be a single top-level name (must be unique).
398
+ * $stateProvider.state("home", {});
399
+ *
400
+ * // Or it can be a nested state name. This state is a child of the above "home" state.
401
+ * $stateProvider.state("home.newest", {});
402
+ *
403
+ * // Nest states as deeply as needed.
404
+ * $stateProvider.state("home.newest.abc.xyz.inception", {});
405
+ *
406
+ * // state() returns $stateProvider, so you can chain state declarations.
407
+ * $stateProvider
408
+ * .state("home", {})
409
+ * .state("about", {})
410
+ * .state("contacts", {});
411
+ * </pre>
412
+ *
413
+ * @param {string } name A unique state name, e.g. "home", "about", "contacts".
414
+ * To create a parent/child state use a dot, e.g. "about.sales", "home.newest".
415
+ * @param {object } definition State configuratino object.
416
+ */
340
417
this . state = state ;
341
418
function state ( name , definition ) {
342
419
/*jshint validthis: true */
@@ -346,6 +423,29 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
346
423
return this ;
347
424
}
348
425
426
+ /**
427
+ * @ngdoc object
428
+ * @name ui.router.state.$state
429
+ *
430
+ * @requires $rootScope
431
+ * @requires $q
432
+ * @requires ui.router.state.$view
433
+ * @requires $injector
434
+ * @requires ui.router.util.$resolve
435
+ * @requires ui.router.state.$stateParams
436
+ *
437
+ * @property {object } params A param object, e.g. {sectionId: section.id)}, that
438
+ * you'd like to test against the current active state.
439
+ * @property {object } current A reference to the state's config object. However
440
+ * you passed it in. Useful for accessing custom data.
441
+ * @property {object } transition Currently pending transition. A promise that'll
442
+ * resolve or reject.
443
+ *
444
+ * @description
445
+ * `$state` service is responsible for representing states as well as transitioning
446
+ * between them. It also provides interfaces to ask for current state or even states
447
+ * you're coming from.
448
+ */
349
449
// $urlRouter is injected just to ensure it gets instantiated
350
450
this . $get = $get ;
351
451
$get . $inject = [ '$rootScope' , '$q' , '$view' , '$injector' , '$resolve' , '$stateParams' , '$location' , '$urlRouter' ] ;
@@ -372,10 +472,36 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
372
472
transition : null
373
473
} ;
374
474
475
+ /**
476
+ * @ngdoc function
477
+ * @name ui.router.state.$state#reload
478
+ * @methodOf ui.router.state.$state
479
+ *
480
+ * @description
481
+ * Reloads the current state by re-transitioning to it.
482
+ */
375
483
$state . reload = function reload ( ) {
376
484
$state . transitionTo ( $state . current , $stateParams , { reload : true , inherit : false , notify : false } ) ;
377
485
} ;
378
486
487
+ /**
488
+ * @ngdoc function
489
+ * @name ui.router.state.$state#go
490
+ * @methodOf ui.router.state.$state
491
+ *
492
+ * @description
493
+ * Convenience method for transitioning to a new state. `$state.go` calls
494
+ * `$state.transitionTo` internally but automatically sets options to
495
+ * `{ location: true, inherit: true, relative: $state.$current, notify: true }`.
496
+ * This allows you to easily use an absolute or relative to path and specify
497
+ * only the parameters you'd like to update (while letting unspecified parameters
498
+ * inherit from the current state.
499
+ *
500
+ * @param {string } to Absolute State Name or Relative State Path.
501
+ * @param {object } params A map of the parameters that will be sent to the state,
502
+ * will populate $stateParams.
503
+ * @param {object } options If Object is passed, object is an options hash.
504
+ */
379
505
$state . go = function go ( to , params , options ) {
380
506
return this . transitionTo ( to , params , extend ( { inherit : true , relative : $state . $current } , options ) ) ;
381
507
} ;
0 commit comments