2013-12-21 4 views
0

내 응용 프로그램에 sDashboard를 사용하고 있는데 requirej를 사용하여 모듈을 만들려고 할 때 항상 이 정의되지 않음이됩니다.항상 sDashboard.js를 정의하면 정의되지 않음

이 s 대시 보드는 github에서 사용할 수 있습니다.

https://github.com/ModelN/sDashboard

내 구성 파일.

requirejs.config({ 
    baseUrl: 'http://localhost:8090/module-require_dashboard/js/', 
    paths: { 
     jquery:'lib/jquery.min', 
     mockjax:'lib/jquery.mockjax', 
     jqueryui: 'lib/jquery-ui.min', 
     Flotr:'lib/flotr2/flotr2', 
     sDashboard:'lib/jquery-sDashboard' 
    }, 
    shim: { //add the dependencies that should be loaded synchronously   
     'jqueryui': ['jquery'], 
     'timepicker': ['jqueryui'], 
     'mockjax': ['jquery'] 
    } 
}); 

참조 용 sDashboard의 JS 파일의 sDashBoard 위젯 JS

https://github.com/ModelN/sDashboard

부분.

(function(factory) {"use strict"; 
     if (typeof define === 'function' && define.amd) { 
      // Register as an AMD module if available... 
      define(['jquery', 'Flotr'], factory); 
     } else { 
      // Browser globals for the unenlightened... 
      factory($, Flotr); 
     } 
    }(function($, Flotr) {"use strict"; 

     $.widget("mn.sDashboard", { 
      version : "2.5", 
      options : { 
       dashboardData : [], 
       widgetWidth :400 
      }, 

내가이 Dashboard.js 파일의 sDashboard을 사용하는 정의 사용할 때, 난 항상 sDashboard에 대한 정의되지 않은 얻을.

define(['jquery','jqueryui','sDashboard'], function(JQuery,jqueryui,sDashboard){ 
    console.log(sDashboard);  
}); 

내가 어떤 실수를하는지 모르겠다. 제안 사항을 알려주십시오.

답변

1

sDashboard는 jQuery 플러그인입니다. jQuery 플러그인을로드하면 jQuery 오브젝트에 자체적으로 설치됩니다. RequireJS에 jQuery 플러그인이로드되고 있다는 사실은 아무 것도 변경하지 않습니다. 따라서 대개 이러한 플러그인은 AMD 환경 (예 : RequireJS)에로드 될 때 팩토리 기능에서 아무 것도 반환하지 않습니다. 모듈을 검사하려고하면 undefined이 나옵니다. 이것은 정상적으로 표시되며 올바르게로드되지 않았다는 표시가 아닙니다. jQuery 오브젝트에 플러그인의 존재 여부를 테스트해야합니다. 당신은 그 쓸모가있을 것이기 때문에 다시 호출 "sDashboard"에 해당하는 매개 변수가 필요하지 않습니다

define(['jquery', 'jqueryui', 'sDashboard'], function(jQuery, jqueryui) { 
    console.log(jQuery.sDashboard);  
}); 

: 당신이 원하는 무엇

이 같은 것입니다. (물론 "sDashboard" 이후에 다른 종속성이있는 경우 매개 변수 목록이나 다른 매개 변수에 자리 표시자를 지정해야합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 네가 말한대로 해봤지만 여전히 같은 문제가있다. jsfiddle에 작업 코드가 있습니다. jsfiddle - http://jsfiddle.net/9hbQZ/. 괜찮은지 여부를 확인해주십시오. – PCA

+0

여기 jsfiddle 링크입니다 - http://jsfiddle.net/9hbQZ/ – PCA

+0

거기에 RequireJS와 아무런 관련이없는 오류가 있습니다. 당신은''require's보다는''requirejs''를 호출했습니다. 또한''# test''에 해당하는 요소가 없습니다. http://jsfiddle.net/lddubeau/9hbQZ/3/ – Louis

관련 문제