我們目前正在啓動我們在這裏工作的第一個Backbone.js項目。實際上,它是我們除了奇怪的jQuery之外的第一個主要的JavaScript項目。什麼是構建Backbone.js項目的好方法?
無論如何,我們與我們的東西的建築鬥爭。什麼是最好的排序方式?
我們已經開始將單獨文件中的所有內容分解到文件夾中;視圖,模型,集合和路由器,然後我們將所有內容包含在我們的index.html
中。但問題是這讓我們不得不在每個文件中檢查文檔就緒事件。這是做這件事的最好方法嗎?
下面是一個例子:
這就是所謂PageModel
文件中,第一行似乎是錯誤的...
$(function(){
app.models.Page = Backbone.Model.extend({
//stuff
});
});
那麼在我們index.html
我們有:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link href="assets/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var app = app || {};
app.models = app.models || {};
app.collections = app.collections || {};
app.views = app.views || {};
app.routers = app.collections || {};
app.templates = app.templates || {};
app.models.griditems = app.models.griditems || {};
app.views.griditems = app.views.griditems || {};
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="assets/js/libs/json2.js" type="text/javascript"></script>
<script src="assets/js/libs/underscore-1.1.7.min.js" type="text/javascript"></script>
<script src="assets/js/libs/backbone-0.5.3.min.js" type="text/javascript"></script>
<script src="assets/js/models/GridItemModel.js" type="text/javascript"></script>
<script src="assets/js/models/GalleryGridItemModel.js" type="text/javascript"></script>
<script src="assets/js/models/NewsGridItemModel.js" type="text/javascript"></script>
<script src="assets/js/models/VideoGridItemModel.js" type="text/javascript"></script>
<script src="assets/js/collections/GridCollection.js" type="text/javascript"></script>
<script src="assets/js/templates/Submenu.js" type="text/javascript"></script>
<script src="assets/js/templates/GalleryGridItemTemplate.js" type="text/javascript"></script>
<script src="assets/js/views/GridView.js" type="text/javascript"></script>
<script src="assets/js/views/GridItemView.js" type="text/javascript"></script>
<script src="assets/js/views/GalleryGridItemView.js" type="text/javascript"></script>
<script src="assets/js/views/VideoGridItemView.js" type="text/javascript"></script>
<script src="assets/js/routers/Router.js" type="text/javascript"></script>
<script src="assets/js/Application.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
沒有必要在DOMReady事件中定義模型/集合/視圖/路由器。只有當dom準備就緒時,唯一需要調用的是'Backbone.history.start()'。 – shesek