Ye so if you have a template your 'rendering' should happen in the template.
If you decide to go the angular route then you probably also want a controller assigned to the template as you opted out of the paint function.
The controller will be in charge of manipulating the data that is on scope which you then render in your template.
The documentation has a good example on it here https://help.qlik.com/sense/en-us/developer/index.html#../Subsystems/Workbench/Content/CodeExamples/angular-chart-extension-example.htm%3FTocPath%3DQlik%2520Sense%2520Workbench%7CCode%2520examples%7C_____6
The extension layout will be on scope and accessible from your template by default so you can do something like
<div ng-repeat="row in layout.qHyperCube.qDataPages.qMatrix">
I hope that makes things a little bit clearer
You define that in your controller by listening for re-size events depending on what you want do.