As of Angular 4 and PrimeNG 4, template has been deprecated in favor of ng-template.
The following code demonstrates how to add links using ng-template to the PrimeNG p-dataTable component.
<p-dataTable [value]="myStore.myList | async">
<p-column field="name" header="Name">
<ng-template let-col let-myItem="rowData" pTemplate="body">
<a href="#" (click)="selectItem(myItem);">
{{myItem[col.field]}}
</a>
</ng-template>
</p-column>
...
The tag "let-col" makes a Column object available for use within the template via the context variable $implicit. See Column from within the PrimeNG common shared.d.ts source file to see all the possible fields. There are quite a few.
The tag
let-myItem="rowData"
makes entire rowData field available to the template.
Another tag let-i makes the current row index available for use:
let-ri="rowIndex"
The pTemplate directive is required by the PrimeNG DataTable when templates are used to determine how to associate each template. Potential values are "header", "body" and "footer".
PrimeNG DataTable Documentation