Comment passer en templateUrl via la portée de la variable dans l'attribut

Je suis en train de passer dans l'url pour le modèle par l'intermédiaire d'une portée variable. Le champ d'application ne changera pas si le modèle n'a pas besoin de mettre à jour basé sur, mais actuellement la portée de la variable est toujours pas défini.

<div cell-item template="{{col.CellTemplate}}"></div>

Idéalement, la directive serait:

.directive("cellItem", ["$compile", '$http', '$templateCache', '$parse', function ($compile, $http, $templateCache, $parse) {
        return {
            scope: {
                template: '@template'
            },
            templateUrl: template //or {{template}} - either way
        };
    }])

Cela ne fonctionne pas. J'en ai essayé beaucoup de différentes permutations dans l'accomplissement de la même notion, et ce qui semble le plus proche, mais il ne fonctionne toujours pas.

.directive("cellItem", ["$compile", '$http', '$templateCache', '$parse', function ($compile, $http, $templateCache, $parse) {
        return {
            scope: {
                template: '@template'
            },
            link: function (scope, element, attrs) {
                var templateUrl = $parse(attrs.template)(scope);
                $http.get(templateUrl, { cache: $templateCache }).success(function (tplContent) {
                    element.replaceWith($compile(tplContent)(scope));
                });
            }
        };
    }])

J'ai aussi essayé d'utiliser ng-inclure, mais qui n'a pas d'évaluer la portée des variables avant de les compiler. Le CellTemplate valeur est à venir à partir d'une base de données d'appel est donc totalement inconnues avant l'évaluation. Toutes les suggestions pour l'obtention de ce travail serait grandement apprécié!

Edit:
Je suis en utilisant angulaire 1.0.8 et ne suis pas en mesure de mettre à niveau vers une version plus récente.

OriginalL'auteur John | 2013-10-21