Sto provando a passare l'URL per il modello tramite una variabile di ambito. L'ambito non cambierà quindi il modello non deve essere aggiornato in base ad esso, ma attualmente la variabile scope è sempre indefinita.Come passare in templateUrl tramite la variabile scope nell'attributo
<div cell-item template="{{col.CellTemplate}}"></div>
Idealmente la direttiva sarebbe:
.directive("cellItem", ["$compile", '$http', '$templateCache', '$parse', function ($compile, $http, $templateCache, $parse) {
return {
scope: {
template: '@template'
},
templateUrl: template // or {{template}} - either way
};
}])
Questo non funziona comunque. Ho provato molte diverse permutazioni nel realizzare lo stesso concetto, e questo sembra il più vicino, tuttavia non funziona ancora.
Ho anche provato a usare ng-include, ma anche questo non valuta le variabili di scope prima della compilazione. Il valore di CellTemplate proviene da una chiamata al database, quindi è completamente sconosciuto prima della valutazione. Qualsiasi suggerimento per ottenere questo lavoro sarebbe molto apprezzato!
Modifica: Sto usando angular 1.0.8 e non sono in grado di eseguire l'aggiornamento a una versione più recente.
Questo funziona sicuramente quando i dati sono predefiniti. Non avevo capito il mio problema è perché sto ricevendo i miei dati da un servizio. Se si impostano i dati in un timeout, si blocca: http://plnkr.co/edit/aLkCRm – John
Mi dispiace per l'equivoco John. Ho modificato la mia risposta con il codice aggiornato e un nuovo Plunker che funziona con il timeout. – tasseKATT
Questo ha fatto il trucco! grazie mille – John