Backbone.js와 Handlebars.js (Backbone에 대한 종속성으로 Underscore.js 및 jQuery 사용)를 사용하여 웹 응용 프로그램을 만들고 있습니다. 나는 requirejs와 함께 애플 리케이션을위한 모듈을로드하고있다. 내가 로컬 복사본을로드하고있어Handlebars.js에서 noConflict 메소드가 부족한 이유는 무엇입니까?
map: {
'*' : { 'jquery': 'jquery-private' },
'jquery-private': { 'jquery': 'jquery' }
},
shim: {
'underscore' : {
exports: '_',
init: function() { return this._.noConflict(); }
},
'backbone' : {
deps: ['underscore', 'jquery'],
exports: 'Backbone',
init: function(_, $) {
// need to manually set Backbone.$ since it looks for it on the global object
this.Backbone.$ = $;
return this.Backbone.noConflict();
}
},
'handlebars' : { exports: 'Handlebars' }
}
: 여기
http://requirejs.org/docs/jquery.html#noconflictmap
과 :
여기에 지침을 다음과 같이
http://requirejs.org/docs/api.html#config
그래서 내 requirejs의 설정 보인다 내 depen 백본, 밑줄 및 jquery에서 noConflict()
을 호출하여 그러나 Handlebars에는 noConflict
메서드가 없습니다. 이
Uncaught TypeError: Object #<c> has no method 'noConflict'
없음 진짜 놀람, 그러나 나는 충돌에 대한 걱정 : 나는 백본 & 밑줄과 같은 방법에 대한 심의를 구성하려고하면, 나는 오류가 발생하지 않습니다! 해결 방법이 있습니까? Handlebars에 대해 noConflict
의 고유 한 버전을 작성하여 어떻게 든 수동으로 동일한 목표를 달성 할 수 있습니까? 그게 어떻게 생겼어?
이 예를 들어, 바로 글로벌'Backbone'에'undefined'를 설정하지 않습니다, 백본에서'noConflict'을 올바른 궤도에있을 것 같지만. 오히려 * 백본이 모듈을 초기화하기 전에 정의 되었다면 전역 백본을 이전 값으로 복원합니다. 사용자가 제어하지 않는 페이지에 삽입하는 경우 해당 페이지에 이미있는 백본 버전을 덮어 쓰지 않으려는 것입니다. – gregates