|
|
$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);
|