如何制作pentaho自定义组件?

时间:2017-10-10 11:08:45

标签: pentaho dashboard custom-component pentaho-cde

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

我的解决方案/ system / pentaho-cdf-dd / resources / custom / components我的ControlComponent文件夹,包含component.xml和control-implementation.js。我也有amd-components,相同的文件夹,但有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)

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

此外,Implementation标签需要属性supportsAMD =&#34; true&#34;。