2015-01-14 1 views
0

backbone.js 프로젝트에서 raphael.js를 사용하고 있습니다. 래퍼 가져 오기는 매력처럼 작동합니다 (이 버전은 AMD 호환). 모든 것이 예상대로 작동합니다. 여기서 "app"은 다른 app.js 파일에 정의 된 사전 정의 된 전역 객체입니다.require.js 의존성 - 추가 스크립트에 종속성 방법을 통합하는 방법

([ 'JQuery와', '밑줄', '애플리케이션', '골격', '라파엘', 함수 ($, _ 앱 백본 라파엘) {

var AppView = Backbone.View.extend({ 

initialize: function() { 

    app.paper = Raphael(0, 0, app.w, app.h); 

}을 정의 ... }})

이제 내 app.paper에는 모든 Raphael 메소드가 있습니다. 굉장해!

난 그냥 내가 라파엘을 넣을 수 있습니다 어떻게 Raphael.el 및 Raphael.fn

initialize: function() { 

    app.paper = Raphael(0, 0, app.w, app.h); 

    Raphael.el.myfill = function(){ 
     this.attr('fill', '90-#fff-#000'); 
    } 

    app.paper.circle(x,y,r).myfill(); //it works! (Brilliant!) 

    } 

}

내 질문은을 사용하여 내 자신의 미리 정의 된 방법을 추가 할 수 라파엘 API에서 발견했다. 다른 Raphael.fn.mydefinedmethods와 함께 el.myfill 정의를 다른 javascript 파일로 가져 와서 위의 AppView로 가져 옵니까?

길이가 긴 정의가있는 AppView 파일을 막히지 않으려 고하며 다른보기에서 사용하는 Raphael. [el | fn] 정의에 대한 가변성을 제공하고 싶습니다. 그러나 이러한 객체 생성자는 이미 종속물로 가져온 Raphael.js 객체의 일부이므로 require.js 프로토콜을 사용하여 Raphael.el 및 Raphael.fn 정의를 분리하는 방법을 잘 모르겠습니다. require.js가 나오기 전에 다른 myRaphaelDefs.js 파일에 이러한 정의를 추가하고 다른 HTML 태그에 "script"태그를 추가하면 항상 사용할 수 있지만 모두 2015 년이며 모듈 형 js 악 대차.

AMD 호환 RedRaphael 브랜치를 사용하고 있으므로 Raphael.js 자체에 "정의"래퍼가 없습니다. 이 라이브러리에 이런 래퍼가 있다면 Raphael.js에 아웃소싱 된 정의를 직접 종속성으로 추가 할 수 있습니다. (옵션이 아님) RedRaphael은 바로 구입 후 바로 require.js와 함께 작동하므로 "정의"래퍼가 없습니다.

답변

0

는 우리가 할 것은 우리의 라이브러리와 require.config에서 map 옵션으로 경로를 래퍼를 추가, 그래서 래퍼는 원래의 라이브러리를 얻을 수 있지만, 다른 모든 래퍼 던져 간다 :

라파엘 - 래퍼. JS :

define(['raphael'], function (Raphael) { 
    Raphael.el.myfill = function(){ 
     this.attr('fill', '90-#fff-#000'); 
    }; 
    return Raphael; 
}); 

require.config : 당신의 대답, 우지에 대한

{ 
    paths: { 
     'raphael': '/path/to/rahpael' 
    }, 
    map: { 
     '*': { 
      'raphael': '/path/to/rahpael-wrapper' 
     }, 
     '/path/to/rahpael-wrapper': { 
      'raphael': 'raphael' 
     } 

    } 
} 
+0

감사합니다. 전에지도 옵션을 사용하지 않았습니다. Ok 나는 그것을 시험해 볼 것이다. – deusoz

+0

굉장, 작동합니다! 내가 require.js API에서 이러한 상황을 설명하는 것을 보지 못해서 기뻤습니다. – deusoz

관련 문제