2017-10-10 8 views
0

J'essaie de créer un nouveau composant personnalisé dans pentaho. C'est juste un menu pour chaque tableau de bord que j'ai besoin d'utiliser, avec quelques boutons et une saisie de texte.Comment faire pour travailler le composant personnalisé pentaho?

J'ai dans mes solutions/système/pentaho-cdf-dd/resources/custom/components mon dossier ControlComponent, avec component.xml et control-implementation.js. J'ai aussi dans amd-components, le même dossier mais avec ControlComponent.js.

En CDE, je peux l'utiliser, mais chaque fois que je lance mon tableau de bord, l'erreur vient de javascript.

define(['cdf/components/BaseComponent', 'cdf/lib/jquery'], 

function(BaseComponent, $) { 
    return BaseComponent.extend({ 
     update: function() { 
      if(this.htmlObject){ 
       var ph = $("#" + this.htmlObject); 
      } else{ 
       var ph = $("<div id='ControlDefault'></div>").appendTo("body"); 
      } 


      var content = '<div id="Control" class="row clearfix">'+ 
       '<div class="col-xs-6-last">'+ 
        '<div>'+ 
         '<div class="row clearfix">'+ 
          '<div class="col-xs-1">'+ 
           '<div id="Left" title="left">'+ 
            + 
           '</div>'+ 
           '</div>'+      
          '</div>'+ 
         '</div>'+ 
         '</div>'+  
        '</div>'; 
      ph.append(content);    
     } 
    }); 
}); 

L'erreur est:

require.js:8 Uncaught Error: Script error for: 
cde/components/ControlComponent 
http://requirejs.org/docs/errors.html#scripterror 
at C (require.js:8) 
at HTMLScriptElement.onScriptError (require.js:30) 

Merci à l'avance.

+0

Je pensais avoir trouvé une erreur avec un double signe plus au milieu de votre concaténation de chaîne 'content', mais en dehors de générer un' NaN' au milieu de votre HTML, cela ne génère pas d'erreur ... Cela vaut la peine de le corriger quand même :) –

+0

Merci, je n'ai pas répondu avant, mais c'était la faute de frappe. –

Répondre

0

Vérifiez que la balise de component.xml s'appelle controlComponent pour correspondre à votre nom de fichier js. RequireJS utilise la valeur du tag IName pour référencer le nom du fichier js au lieu de l'attribut src de la balise Code.

En outre, la balise Implémentation nécessite un attribut supportsAMD = "true".