2015-01-31 2 views
0

Require.js로 Backbone.js 앱을 만들고 싶습니다. 하지만 콘솔에 오류가 있습니다 : 잡히지 않은 오류 : 모듈 이름 "밑줄"이 컨텍스트에 대해 아직로드되지 않았습니다 : _. 사용이 필요합니다 ([])Backbone.js 및 Require.js

require.config({ 
     baseUrl: 'js/', 
     paths : { 
      'jquery' : 'jquery', 
      'underscore' : 'underscore', 
      'backbone' : 'backbone', 
      shim: { 
       'underscore': { 
        exports: '_' 
       }, 
       'backbone': { 
        deps: ['underscore', 'jquery'], 
        exports: 'Backbone' 
       } 

      } 
     } 
    }); 

    define('app', ['jquery','backbone', 'underscore'], function ($, Backbone, _){ 

     var Model = Backbone.model.extend({}); 
     var model = new Model; 
    }); 

    require(['app','jquery', 'backbone', 'underscore']); 

나는이 문제를 해결하려면 어떻게해야합니까?

+0

시도는 순서에 JQuery와'에 전화를 정의 변경

그래서이 ...,의 –

+0

가능한 중복 backbone' 밑줄 [Require.js과 결합 문제를 Backbone.js/Underscore.js] (HTTP : //stackoverflow.com/questions/16774214/trouble-combining-require-js-and-backbone-js-underscore-js) – Louis

답변

1

underscorepaths의 일부로 나열해야하므로 심에서 참조 할 수 있습니다. 또한, 귀하의 디렉토리 구조가 어떻게 생겼는지 모르겠지만 라이브러리 코드가 /js/libs 디렉토리에 있다고 가정하여 이것을 작성하고 있습니다. 마지막으로 require의 종속성 중 하나가 app 일 필요는 없습니다. RequireJS의 기쁨은로드 할 항목을 파악한다는 것입니다.

require.config({ 
    baseUrl: 'js/', 
    paths : { 
     'jquery' : 'lib/jquery', 
     'underscore' : 'lib/underscore', 
     'backbone' : 'lib/backbone', 
    }, 
    shim: { 
     'underscore': { 
      exports: '_' 
     }, 
     'backbone': { 
      deps: ['underscore', 'jquery'], 
      exports: 'Backbone' 
     } 

    } 
}); 

define('app', ['jquery','backbone', 'underscore'], function ($, Backbone, _){ 
    var Model = Backbone.Model.extend({}); 
    var model = new Model({ 
     foo: 'bar' 
    }); 

    var app = { 
     model: model 
    }; 

    // ... 

    return app; 
}); 

require(['app'], function(App) { 
    App.model.get('foo'); // <<=== returns 'bar' 
}); 
+0

우수! 고맙습니다. 그러나 하나의 수정 : 'App.model.get ('foo'); ' –

+0

예제와 일치하도록 수정되었습니다. 답변을 수락 해 주셔서 감사합니다! –

-1

귀하의 요구 사항에 나열된대로 Underscore.js이 필요합니다.

+0

오. 나는 너를 이해하지 못한다. 예제를 보여줄 수 있습니까? –

+0

'require ([ 'app', 'jquery', 'backbone', 'underscore']);에는 Underscore.js가 필요합니다. 다른 JS 파일처럼 다운로드하고 링크하십시오. – Will

+0

Underscore.js를 다운로드했습니다. 다른 스크립트와 함께 폴더에 있습니다. –

1

shim은 paths 개체 안에 언급되어 있습니다. 그게 문제인지는 모르지만 여기서 언급하고 싶습니다.

관련 문제