2017-10-10 22 views
0

나는 pentaho에 새로운 사용자 지정 구성 요소를 만들려고합니다. 그것은 일부 버튼과 텍스트 입력과 함께 사용해야하는 모든 대시 보드를위한 메뉴 일뿐입니다.pentaho 사용자 정의 구성 요소를 작동시키는 방법은 무엇입니까?

내 솔루션/system/pentaho-cdf-dd/resources/custom/components에 내 ControlComponent 폴더, component.xml 및 control-implementation.js가 있습니다. 나 역시 같은 폴더이지만 ControlComponent.js를 가진 amd-components를 가지고있다.

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

js 파일 이름과 일치하도록 component.xml의 태그 이름이 controlComponent인지 확인하십시오. RequireJS는 IName 태그 값을 사용하여 src 태그 속성 대신 js 파일 이름을 참조합니다.

또한 구현 태그에는 supportsAMD = "true"속성이 필요합니다.