2016-05-11 2 views
1

Я хотел бы создать директиву с большим количеством шаблонов. И выбранный шаблон зависит от некоторого значения (типа шаблона). Тогда, если я вызываю свою директиву на странице html и изменяю тип типа шаблона, вам нужно изменить шаблон html. Как это:AngularJs create templates директива

<template-factory template-type={{foo}}></template-factory> 

Я думаю, что я могу создан один шаблон HTML, который содержит все мои шаблоны, и выбрать из нг-если помощи. Но я думаю, что это не очень хорошо. Помогите мне, пожалуйста, выберите наилучшие решения для этой задачи.

ответ

2

Интересно, что в директиве вы можете передать функцию в качестве шаблона, который затем может вернуть строку, которая используется для шаблона.

Посмотрите на What are the benefits of a directive template function in Angularjs?, чтобы узнать, как это делается и за плюсами/минусами.

От angular docs:

angular.module('docsTemplateUrlDirective', []) 
.controller('Controller', ['$scope', function($scope) { 
    $scope.customer = { 
    name: 'Naomi', 
    address: '1600 Amphitheatre' 
    }; 
}]) 
.directive('myCustomer', function() { 
    return { 
    templateUrl: function(elem, attr){ 
     return 'customer-'+attr.type+'.html'; 
    } 
    }; 
}); 
+1

Спасибо Джоуи. Вы очень поможете мне с моей задачей. –

Смежные вопросы