You are over complicating it.
Use what I wrote originally as your template and rather than adding html and trying to make angular js evaluate it. $sce is for outputting html, not another directive. I should have looked more closely at what you are doing....
increment a counter then make it ng-repeat n times depending on how big your number value is.
app.component("pointCom", {
bindings: {
point: "<",
qty: "@",
min: "@",
max: "@"
},
controller: dataController,
controllerAs: "dc",
template:`
<span>Render</span>
<div ng-repeat="idx in dc.sour track by $index">
<ma-get-point-value point-xid="DP_{{idx}}_Meter_kWh" point="dc.pts['c'+idx+'_Meter_kWh']"></ma-get-point-value>
<ma-get-point-value point-xid="DP_{{idx}}_Meter_V" point="dc.pts['c'+idx+'_Meter_V']"></ma-get-point-value>
<ma-get-point-value point-xid="DP_{{idx}}_Meter_A" point="dc.pts['c'+idx+'_Meter_A']"></ma-get-point-value>
</div>
`
});
dataController.$inject = ["$scope"]
function dataController($scope){
let dc = this
let P = dc.point
let Q = dc.qty
let min = dc.min
let max = dc.max
let num = 0
this.$onChanges = function() {
let p = dc.point
dc.sour = []
max = dc.max
num = dc.min
console.log(school)
if (max !== undefined){
Q = max
} else {
Q = dc.qty
}
if (p !== undefined){
for (let i=0; i < Q; i++){
num = Number(num)
num = num.pad(3)
dc.sour.push(num)
}
console.log(dc.sour)
}
}
Number.prototype.pad = function(size) {
let s = String(this)
while (s.length < (size || 2)) {s = "0" + s;}
return s
}
}
Try that and see how you go. Haven't tested this
Fox