加載此庫與RequireJS中的填充選項(也許,因爲我在該庫上的背景不佳)問題。我嘗試查看文檔並查看其他頁面,但問題仍然存在。加載backbonejs和underscorejs requirejs時出現的問題
這是我的應用程序文件夾結構:
index.html
js/main.js
js/app/router.js
js/app/app.js
js/views/homeview.js
js/libs/backbone/backbone-1.0.0.js
js/libs/underscore/underscore-1.5.1.js
js/libs/jquery/jquery-1.10.2.js
js/libs/require/require-2.1.8.js
所有啓動的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<title>App</title>
</head>
<body>
<div class="page">
Loading...
</div>
<script data-main="js/main" src="js/libs/require/require-2.1.8.js"></script>
</body>
</html>
加載main.js
require.config({
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
},
paths: {
app: 'app',
mod: 'app/mods',
backbone: 'libs/backbone/backbone-1.0.0',
underscore: 'libs/underscore/underscore-1.5.1',
jquery: 'libs/jquery/jquery-1.10.2',
},
});
require([
'app/app',
], function (App) {
App.initialize();
});
定義的路徑庫和非AMD庫的墊片選項。
然後是app.js
define([
'app/router',
], function(Router) {
var initialize = function() {
//var router = new Router();
//router.initialize();
Router.initialize();
};
return {
initialize: initialize,
};
});
然後router.js:
define([
'jquery',
'underscore',
'backbone',
'app/views/homeview',
], function($, _, Backbone, HomeView) {
var AppRouter = Backbone.Router.extend({
routes: {
'': 'home',
}
});
var initialize = function() {
var appRouter = new AppRouter();
var homeView = new HomeView();
appRouter.on('route:home', function() {
userListView.render();
console.log('We have loaded the home page.');
});
Backbone.history.start();
};
return {
initialize: initialize,
};
});
現在,這裏我有東陽看着Chrome開發人員工具僅jQuery的負載網絡選項卡有問題,也不主幹或下劃線。
然後,最後,因爲它定義爲一個視圖的引用,負載homeview.js
define([
'jquery',
'underscore',
'backbone',
'libs/text!app/tpl/home.html',
], function($, _, Backbone, HomeTpl) {
var homeView = Backbone.View.extend({
el: '.page',
render: function() {
//var self = this;
//users.fetch({
// success: function() {
var template = _.template(HomeTpl, {});
//self.$el.html(template);
this.$el.html(template);
// }
//});
},
});
return homeView;
});
而且問題,因爲行
var homeView = Backbone.View.extend({顯示了錯誤:「遺漏的類型錯誤:無法讀取屬性「查看'未定義「,但我認爲這是因爲骨幹從不加載。
¿誰能說出我在做什麼錯事?我整天看着代碼和幾頁,我無法弄清楚答案。在此先感謝和長期質疑,買我見過很多人有這個相同的問題,也許答案可以幫助其他人。
因此,要明確,就像它在這裏writen代碼工作完美(與更正,我對這個職位)。顯然,所有問題都是某種緩存問題,而不是重新加載更新的庫。處理很多工具時發生的事情:您可能認爲問題出在某個地方,但它在另一個地方。謝謝! – JetSpyDragon