2017-10-10 99 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」。