Bunun nasıl yapılacağına dair birkaç yol gördüm, ancak hangisinin 'doğru' yol olduğunu asla anlayamıyorum. Uygulamalarını başlatmak için bir 'ana' uygulama görünümünü başlatmak üzereBir Omurga uygulamasını önyükleme
Jeffrey Way from NetTuts+ ve Addy Osmani. Bir uygulamayı işe koşulması bu iki yolu arasında önemli bir farkwindow.App =
Models: {}
Collections: {}
Views: {}
Routers: {}
init: ->
new App.Router()
Backbone.history.start()
}
}
$(document).ready ->
App.init()
var mı:
require(['views/app'], function(AppView) {
new AppView();
});
daha sonraki isteklerini işleyen bir yönlendirici nesnelleştirilmesiyle başvurusunu başlar?
Ryan Bates, tüm modellerini, görünümlerini eklediği bir App
nesnesini nasıl oluşturduğunu oldukça beğenirim ... CoffeeScript'i kullanıyor olsa da, bu nesnenin nasıl ele alınacağı konusunda herhangi bir fark yaratıp yaratmadığından emin değilim. Bu çalıştı ve bunu RequireJS çalışmak için alamadım:
define(['backbone', 'loginView'], function(Backbone, LoginView) {
var Router = Backbone.Router.extend({
routes: {
'': 'index'
},
index: function() {
var loginView = new LoginView();
}
});
return Router;
});
Ve LoginView:
require(['jquery', 'backbone', 'router'], function ($, Backbone, Router) {
window.App = {
Models: {},
Collections: {},
Views: {},
Aggregator: _.extend({}, Backbone.Events),
Hook: $('#application'),
Router: Router,
init: function() {
new App.Router();
Backbone.history.start();
}
}
$(document)ready(function() {
App.init();
});
});
Sonra bir dizin yolu çarpınca LoginView yaratır basit yönlendirici vardır:
:define(['backbone'], function(Backbone) {
var LoginView = Backbone.View.extend({
});
return LoginView;
});
çalışma Ryan Bates'in yolunu izleyin, ben böyle bir şey yapmak istedim 0
ama bu o CoffeeScript ne yaptığını nasıl farklı pek emin değilim:
class App.Views.LoginView extends Backbone.View
benim LoginView en initialize
yönteminde konsola 'App' log, benim ana nesneyi almak .js dosyası, App.Views nesnesine bir şey iliştirmeye çalıştığımda, App.Views undefined olduğunu söylüyor. Burada yanlış bir şey mi olmalı?
ve Raylar yaklaşımları uyumludur. Require.js, 'define' çağrılarında açıkça listelenen bağımlılıklar ile işleri yoluna koymak ister, bu çoğunlukla 'window.App' gereksinimini ortadan kaldırır. Rails yolu, her şeyden büyük bir yığın halinde varlık boru hattı üzerinden atmaktır, böylece büyük bir karmaşadan kaçınmak için küresel bir pencere açılır. AFAIK, '' window'App' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' belgesine 'geçmek zorunda olduğunuz gibi '' '' 'fonksiyonlarına geçmek zorundasınız. İhtiyacım yok.Js adam olsa da ben açık bir şey eksik olabilir. –
Teşekkürler. Hala Require.js'yi kullanmayı öğreniyorum, bu yüzden söyledikleriniz doğru olabilir. Umarım birisi problem hakkında biraz ışık tutabilecektir. – cabaret
Bana çok güvenme, umarım bir takım gereksinimleri açıklığa kavuşturmak için bazı require.js kullanıcıları olur. BTW, 'App.Views.LoginView = Backbone.View.extend ({});' ve App.Dünya.Views.LoginView uzantıları Backbone.View 'işlevsel olarak eşdeğerdir. –