Estoy creando una aplicación web dinámica usando AngularJS. ¿Es posible tener múltiples ng-viewen una sola plantilla?
Estoy creando una aplicación web dinámica usando AngularJS. ¿Es posible tener múltiples ng-viewen una sola plantilla?
Respuestas:
Puedes tener solo uno ng-view.  
Puede cambiar su contenido de varias maneras: ng-include, ng-switcho mapeo de diferentes controladores y plantillas a través de la routeProvider.
ng-showy ng-hideya controlar su visibilidad mediante variables? Porque a veces me gustaría ocultar / mostrar múltiples componentes
                    UI-Router es un proyecto que puede ayudar: https://github.com/angular-ui/ui-router Una de sus características son las vistas con nombre múltiple
UI-Router tiene muchas características y le recomiendo que lo use si está trabajando en una aplicación avanzada.
Consulte la documentación de varias vistas con nombre aquí .
Creo que puedes lograrlo solo con un soltero ng-view. En la plantilla principal puede tener ng-includesecciones para vistas secundarias, luego, en el controlador principal, defina las propiedades del modelo para cada plantilla secundaria. Para que se unan automáticamente a las ng-includesecciones. Esto es lo mismo que tener múltiplesng-view 
Puedes consultar el ejemplo dado en la ng-include  documentación
en el ejemplo, cuando cambia la plantilla de la lista desplegable, cambia el contenido. Aquí suponga que tiene un contenido principal ng-viewy, en lugar de seleccionar manualmente el contenido secundario seleccionando el menú desplegable, lo hace como cuando se carga la vista principal.
ng-include documentación , pero no es un patrón de arquitectura de aplicación deseable, UI-Router es el tipo correcto de solución.
                    Con el ng-viewmódulo normal no puede tener más de una plantilla dinámica.
Sin embargo, este proyecto le permite hacerlo (buscar ui-router).
Es posible tener vistas múltiples o anidadas. Pero no por ng-view.
El módulo de enrutamiento primario en angular no admite múltiples vistas. Pero puedes usar ui-router. Este es un módulo de terceros que puede obtener a través de Github, angular-ui / ui-router, https://github.com/angular-ui/ui-router . También se está desarrollando una nueva versión de ngRouter (ngNewRouter) actualmente. No es estable en este momento. Así que le proporciono un ejemplo de inicio simple con ui-router. Al usarlo, puede nombrar vistas y especificar qué plantillas y controladores deben usarse para representarlos. Con $ stateProvider, debe especificar cómo se deben representar los marcadores de posición de vista para un estado específico.
<body ng-app="main">
    <script type="text/javascript">
    angular.module('main', ['ui.router'])
    .config(['$locationProvider', '$stateProvider', function ($locationProvider, $stateProvider) {
        $stateProvider
        .state('home', {
            url: '/',
            views: {
                'header': {
                    templateUrl: '/app/header.html'
                },
                'content': {
                    templateUrl: '/app/content.html'
                }
            }
        });
    }]);
    </script>
    <a ui-sref="home">home</a>
    <div ui-view="header">header</div>
    <div ui-view="content">content</div>
    <div ui-view="bottom">footer</div>
    <script src="bower_components/angular/angular.js"></script>
    <script src="bower_components/angular-ui-router/release/angular-ui-router.js">
</body>
Necesita hacer referencia a angularjs y angular-ui.router para esta muestra.
$ bower install angular-ui-router
              No puedes tener múltiples ng-view. A continuación se muestra mi caso de uso donde resolví mi requisito. Quería tener un comportamiento con pestañas en el diálogo de mi modelo. Estaba enfrentando un problema al hacer clic en las pestañas que tienen un hipervínculo que invocará los enlaces del enrutador. Resolví esto usando el botón y CSS para pestañas. Cuando el usuario hace clic en la pestaña, en realidad no llamará a ningún hipervínculo que siempre invocará el ng-router. Cuando el usuario hace clic en la pestaña, llamará a un método, donde cargaré dinámicamente html. A continuación se muestra la función al hacer clic en la pestaña
self.submit = function(form) {
                $templateRequest('resources/items/employee/test_template.html').then(function(template){
                var compiledeHTML = $compile(template)($scope);
                $("#d").replaceWith(compiledeHTML);
});
Usuario $ templateRequest. En la página test_template.html agregue su contenido html. Este contenido html estará vinculado a su controlador.