Показать 2 шаблона на одной странице / вкладке

У меня проблема с ng-шаблоном. В этом примере, если я добавлю в выпадающие меню еще одну опцию (ex template3.html), как я могу показать первый и второй шаблон вместе?

HTML:

  <!-- template1.html -->
  <script type="text/ng-template" id="template1.html">
    Content of template1.html
  </script>

  <!-- template2.html -->
  <script type="text/ng-template" id="template2.html">
    Content of template2.html
  </script>


  <div ng-controller="Ctrl">
    <select ng-model="template" ng-options="t.name for t in templates">
    </select>
    url of the template: <tt>{{template.url}}</tt>
    <hr/>
    <div ng-include src="template.url"></div>
  </div>    

JS:

function Ctrl($scope) {
  $scope.templates =
    [ { name: 'template1.html', url: 'template1.html'}
    , { name: 'template2.html', url: 'template2.html'}
    , { name: 'template3.html', url: }//this must contain first and second template
    ];
  $scope.template = $scope.templates[0];
}

1 ответ

Решение

Создайте шаблон, который включает оба других

  <script type="text/ng-template" id="template3.html">
     <div ng-include src="'template1.html'"></div>
     <div ng-include src="'template2.html'"></div>
  </script>

JS

function Ctrl($scope) {
  $scope.templates =
    [ { name: 'template1.html', url: 'template1.html'}
    , { name: 'template2.html', url: 'template2.html'}
    , { name: 'template3.html', url: 'template3.html' }
    ];
  $scope.template = $scope.templates[0];
}

DEMO

Другие вопросы по тегам