Balise dynamique avec angularjs directive

Je voudrais créer un élément de la directive dans angularjs qui produit un élément html à partir d'un json blob passé comme un attribut. J'ai essayé assez peu de variations de la suite...

demoApp.directive("element", function() {
    return {
        restrict: "E",
        scope: {
            attributes: "@",
            name: "@"
        },
        template:         
            function(name, attributes) {
                var templateString = "<" + attributes.tag;
                for (attribute in attributes) {
                    if (attribute != "name_displayed" && attribute != "tag") {
                        templateString += " " + attribute + "=\"" attributes[attribute] + "\"";
                    }
                }
                templateString += " name=\"" field + "\"";
                templateString += ">";
                templateString += "</" + attributes.tag + ">";
                return attributes.name_displayed + ": " + templateString;
            }(name, attributes)
    };
});

Le code html ressemble à

<div ng-repeat="(name, attributes) in fields">
    <element name="{[{name}]}" attributes="{[{attributes}]}"></element>
</div>

Où l'un des attributs d'objet json ressemble

{"name_displayed":"Agency","size":"30","tag":"input","type":"text"}

Et un nom ressemble

agency

Il semble que je ne peut pas utiliser une fonction pour un modèle, et aussi, il semble que je ne peut pas accéder aux attributs ou des objets de nom.

  • Votre json est le premier problème. Le stockage de balisage des instructions dans un json (sans doute d'être sauvegardé sur le serveur) est bizarre...et je suis tenté de dire tout simplement ridicule. Même si vous avez besoin pour être en mesure de prendre une entrée de l'utilisateur et de la forme d'un modèle pour une sortie plus tard, vous enregistrez le modèle dans un fichier html, et non comme un json.
InformationsquelleAutor Alex | 2013-11-14