2017-10-10 101 views
0

我试图在pentaho中创建一个新的自定义组件。这只是我需要使用的每个仪表板的菜单,带有一些按钮和文本输入。如何制作pentaho自定义组件?

我在我的解决方案/ system/pentaho-cdf-dd/resources/custom/components我的ControlComponent文件夹中,使用component.xml和control-implementation.js。我也有在amd组件,相同的文件夹,但与ControlComponent.js。

在CDE中,我可以使用它,但每次运行仪表板时,都会出现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);    
     } 
    }); 
}); 

的错误是:提前

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) 

感谢。

+0

我以为我发现你的'content'字符串连接中间有一个双加号的错误,但除了在HTML中间生成'NaN',它不会产生错误...这是值得的,但它仍然:) –

+0

谢谢,我没有回答,但它是错字失败。 –

回答

0

检查component.xml中的标签名为controlComponent以匹配您的js文件名。 RequireJS使用IName标记值来引用js文件名,而不是代码标记src属性。

此外,实现标记需要属性supportsAMD =“true”。