2015-08-10 2 views
1

J'ai donc une directive personnalisée dans AngularJS utilisée pour dessiner un cercle via SVG. Pour une raison quelconque, lorsque la page se charge, elle ne dessine pas le cercle, et mon texte n'apparaît pas dans le modèle.Directive ne montrant pas ce que je veux sur le HTML?

Pourquoi est-ce?

Voici un plunker de ce que j'ai. plnkr.co/edit/1hHB2yXlhb3trMWPpXUC?

Voici le code de la directive et son code HTML.

<div> 
    <b>Data Sources:</b> 
    <b> Auto-Tagged Events - </b> 
<svg width="50" height="50"> 
    <circle cx="10" cy="10" r="5" fill="red"></circle> 
</svg> 

    <b> GLIDR - </b> 
    <svg width="50" height="50"> 
     <circle cx="10" cy="10" r="5" fill="blue"></circle> 
    </svg> 

    <b> J9/CIDNE</b> 
    <svg width="50" height="50"> 
     <circle cx="10" cy="10" r="5" fill="yellow"></circle> 
    </svg> 
</div> 



    (function(){ 
    'use strict'; 

    angular 
     .module('app') 
     .directive('legend', legend); 

    /* @ngInject */ 

    function legend(){ 
     var ddo = { 
      restrict: 'EA', 
      templateURL: 'draw-circle.directive.html', 
      link: link 

     }; 

     return ddo; 

     function link(scope, element, attrs){ 

     } 

    } 
    })(); 

Répondre

1

Vous avez fait plusieurs erreurs tout en créant une application

  1. Vous devez ajouter ng-app="app" dans votre page balise html
  2. Remplacer AngularJS refernce this-this
  3. templateURL devrait être templateUrl dans la directive.
  4. templateUrl devrait être legend.directive.html comme templateUrl: 'legend.directive.html',
  5. Ajouter vous directive à l'intérieur body tag.

Working Plunkr