У меня есть ng-repeat, который отображает значения из элементов коллекции. В зависимости от типа значения (например, ссылка, номер телефона или текст) я хочу условно добавить определенный шаблон для рендеринга (<a href
, если это ссылка, отформатированный номер, если это номер телефона и т. д.). У меня есть встроенные шаблоны в html-файле как таковые:
<script type="text/ng-template" id="linkValue">
<a href="#/{{itemType}}/Detail/{{id}}">{{value}}</a>
</script>
<script type="text/ng-template" id="phoneValue">
{{value | phone}}
</script>
<script type="text/ng-template" id="textValue">
{{value}}
</script>
Я решил использовать ng-include для рендеринга шаблона в зависимости от типа отображаемого значения, но я не могу понять, как его подключить. у меня есть
<td ng-repeat="column in columns">
<span ng-include="???"></span>
</td>
И тогда в моем контроллере у меня есть
$scope.renderValue = function (columnInfo, dataItem) {
if (columnInfo.isPhoneNumber) {
return phoneValue;
}
else if (columnInfo.isDetailViewLink) {
return linkValue
}
else {
return textValue
}
};
Я не могу понять, как по-разному подключить шаблон для каждого экземпляра повторяющегося ng-include. Есть лучший способ это сделать? Я чувствую, что есть.