| |
| $ViewProvider.$inject = []; |
| function $ViewProvider() { |
| |
| this.$get = $get; |
| /** |
| * @ngdoc object |
| * @name ui.router.state.$view |
| * |
| * @requires ui.router.util.$templateFactory |
| * @requires $rootScope |
| * |
| * @description |
| * |
| */ |
| $get.$inject = ['$rootScope', '$templateFactory']; |
| function $get( $rootScope, $templateFactory) { |
| return { |
| // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... }) |
| /** |
| * @ngdoc function |
| * @name ui.router.state.$view#load |
| * @methodOf ui.router.state.$view |
| * |
| * @description |
| * |
| * @param {string} name name |
| * @param {object} options option object. |
| */ |
| load: function load(name, options) { |
| var result, defaults = { |
| template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {} |
| }; |
| options = extend(defaults, options); |
| |
| if (options.view) { |
| result = $templateFactory.fromConfig(options.view, options.params, options.locals); |
| } |
| if (result && options.notify) { |
| /** |
| * @ngdoc event |
| * @name ui.router.state.$state#$viewContentLoading |
| * @eventOf ui.router.state.$view |
| * @eventType broadcast on root scope |
| * @description |
| * |
| * Fired once the view **begins loading**, *before* the DOM is rendered. |
| * |
| * @param {Object} event Event object. |
| * @param {Object} viewConfig The view config properties (template, controller, etc). |
| * |
| * @example |
| * |
| * <pre> |
| * $scope.$on('$viewContentLoading', |
| * function(event, viewConfig){ |
| * // Access to all the view config properties. |
| * // and one special property 'targetView' |
| * // viewConfig.targetView |
| * }); |
| * </pre> |
| */ |
| $rootScope.$broadcast('$viewContentLoading', options); |
| } |
| return result; |
| } |
| }; |
| } |
| } |
| |
| angular.module('ui.router.state').provider('$view', $ViewProvider); |