Require.js uygulamasında yeniyim ve basit olacağını düşündüğüm ama acı çekmeye başladığım bir şeyi yapmaya çalışıyorum.Require.js ve Backbone ile global bir Uygulama Ad Alanı Tanımlama
Omurgam uygulamam için genel bir ad alanı tanımlamaya çalışıyorum ve bunu bir modül olarak yükleyin. İşte benim ad (main.js) 'dir:
define(
['jquery',
'underscore',
'backbone',
'GlobalRouter'
],
function($, _, Backbone) {
var App= {
Models: {},
Views: {},
Collections: {},
Routers: {},
init: function() {
new App.Routers.GlobalRouter();
Backbone.history.start();
}
}
return App;
});
ve burada benim config.js dosyasıdır:
require.config({
// your configuration key/values here
baseUrl: "js", // generally the same directory as the script used in a data-main attribute for the top level script
paths: {
'jquery' : '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min',
'underscore': 'vendor/underscore-min',
'backbone': 'vendor/backbone-min',
'marionette': 'vendor/backbone.marionette',
'main' : 'main'
}, // set up custom paths to libraries, or paths to RequireJS plugins
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'main' : {
deps: ['underscore', 'jquery', 'backbone', 'GlobalRouter'],
exports: 'TEWC'
}
} // used for setting up all Shims (see below for more detail)
});
define([
'jquery',
'underscore',
'backbone',
'main'
],
function($, _, Backbone, App, GlobalRouter) {
console.log(App)
alert('hit ')
$(function() {
App.init();
});
}
);
ve iyi ölçmek için
, burada yönlendiricidir: Geçmiştedefine([
'jquery',
'underscore',
'backbone',
'main'
],
function($, _, Backbone, TEWC) {
TEWC.Routers.GlobalRouter = Backbone.Router.extend({
routes: {
"" : "index",
"documents/:id" : "edit",
"login" : "login"
},
edit: function(id) {
alert('edit')
},
index: function() {
alert('index')
},
login: function() {
alert('login')
}
});
});
, ben başlamıştı 'uygulamasını tanımsız hatadır.' Şimdi, bu diyor birkaç dakika sonra bir yük zaman aşımı hatası alıyorum:
Uncaught Error: Load timeout for modules: main
Ancak uyarı ateş etmez ve main.js yüklenen almak gibi görünmüyor, ama ben yönlendirici yapar inanıyorum ve TEWC'nin tanımlanmamış olduğunu kabul etmiyor - bu yüzden Ağ sekmemde olmamasına rağmen yüklenebilir.
Bu muhtemelen bir çaylak sorusu - bunun hakkında herhangi bir fikir sahibi olan var mı?
Bu, omurgalı Addy Osmani'nin TodoMVC'siyle bir araya getirildi ve fark yaratan (https://github.com/addyosmani/todomvc/tree/gh-pages/dependency-examples/backbone_require) gerekiyordu! Teşekkürler! – streetlight
sokak lambası: Sorunun tam olarak ne olduğunu söyleyebilir misiniz? Ben benzer bir sorun yaşıyorum. –
@JohnEdward, main.js'yi bir AMD stilinde tanım işleviyle vb. Yapılandırmam gerektiğine inanıyorum. Ayrıca, tanımladığınız dosyaların sırasının, işlev parametrelerindeki şeylerin sırasına da uyduğundan emin olmak çok önemlidir - anahtar olduğuna inanıyorum. Bu hiç yardımcı olmaz mı? – streetlight