핵심 라이브러리 (jquery, 밑줄, 백본)를로드하려면 requirejs를 구성했습니다. 이제는 백본 모델, 컨트롤러, 뷰 등을 비동기 적으로로드 할 수 있도록 추가하고 싶습니다.Requirejs2 : 자체 파일을 처리하는 방법?
이 주제에 대한 많은 자습서와 많은 "준비된"상용어가 유감스럽게도 대부분의 접근 방법이 약화되거나 오히려 복잡한 (더 나은 접근법조차도).
한 예는 내가 주 libs와에 대한 requirejs 구성하는 방법입니다 : 그래서 https://stackoverflow.com/a/10914666/1309847
을 어떻게 간단하고 유효한 Requirejs 구성과 백본보기, 모델, 컬렉션, 라우터, 컨트롤러 및 템플릿을로드합니까?
:내가 개봉 조언을 따라하지만 이상한 오류가
main.js
require.config({
paths: {
jquery: 'vendors/jquery/jquery',
underscore: 'vendors/underscore/underscore',
backbone: 'vendors/backbone/backbone'
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
});
require(['app'], function(app){
});
는 app.js에
define(['jquery', 'underscore', 'backbone'], function($, _, Backbone){
var Message = new Backbone.Model.extend({
//idAttribute: '_id',
//defaults: { body: '' }
//url: function(){ return this.id ? '/messages/' + this.id : '/messages'; }
});
var newMessage = new Message({ body: 'hi' });
newMessage.save();
});
오류 occours을 app.js
Uncaught TypeError: Object [object Object] has no method 'apply'
새 Backbone.Model.extend 부분에 주석을 달았을 때 더 이상 오류가 발생하지 않습니다.
문제 로딩 밑줄 또는 백본을 보인다. app.js의 두 번째 줄에 중단 점을 넣고 "_"또는 "백본"이 정의되지 않았는지 확인합니다. 이 경우 호환성 문제를 찾으려는 경로와 libs 버전을 확인하십시오. 모든 것이 실패하면 백본의 AMD 버전을 사용하고 다음과 같이 씁니다. https://github.com/amdjs – eabait
세 가지 매개 변수를 모두 사용하여 console.log를 작성했습니다. 세 가지 모두 유효 해 보이지만 오류를 좀 더 자세히 지정했습니다. 새로운 Message 인스턴스를 생성하려고 할 때 발생합니다. (나는 또한 스키마의 주석을 제거 할 수 있지만 오류가 발생 인스턴스) –
좋아, "var 메시지 = 새로운 Backbone.Model.extend"이 줄에 "새"제거하십시오. 그것은 var 일 것임에 틀림 없다 Message = Backbone.Model.extend – eabait