Đây là lần đầu tiên tôi sử dụng require.js với xương sống, và tôi đang phải vật lộn để tìm ra vấn đề với quan điểm của tôi:không thể đọc thuộc tính 'Xem' không xác định
Cannot read property 'View' of undefined // search.js:8
cấu trúc thư mục của tôi là:
.
├── index.php
└── js
├── app.js
├── lib
│ ├── backbone.js
│ ├── backbone-min.js
│ ├── jquery-min.js
│ ├── require.js
│ └── underscore-min.js
├── main.js
├── model
├── router.js
├── text.js
└── view
├── error.js
└── search.js
My main.js
:
require.config({
paths: {
jquery: 'lib/jquery-min',
underscore: 'lib/underscore-min',
backbone: 'lib/backbone-min',
templates: '../templates'
}
});
require([
'app'
], function(App){
App.initialize();
});
My app.js
:
define([
'jquery',
'underscore',
'backbone',
'router', // Request router.js
], function($, _, Backbone, Router){
var initialize = function(){
// Pass in our Router module and call it's initialize function
Router.initialize();
}
return {
initialize: initialize
};
});
My router.js
:
define([
'jquery',
'underscore',
'backbone',
'view/search', // requests view/search.js
], function($, _, Backbone, SearchView){
var AppRouter = Backbone.Router.extend({
routes: {
"": "home"
}
});
var initialize = function(){
var app_router = new AppRouter;
app_router.on('route:home', function(){
var homeView = new SearchView();
homeView.render();
});
Backbone.history.start();
};
return {
initialize: initialize
};
});
và view/search.js
tôi:
define([
'jquery',
'underscore',
'backbone',
'text!templates/search.html'
], function($, _, Backbone, searchTemplate){
// console.log($,_,Backbone);
var SearchView = Backbone.View.extend({
...
});
return SearchView;
});
Khi tôi uncomment các console.log trên, cả hai _
và Backbone
là undefined
nhưng $
thì không. Tôi đã bỏ lỡ điều gì? Tất cả các tệp lib của tôi đều có phiên bản mới nhất.
Cảm ơn bạn vì đã cứu tôi suốt ngày! BTW, gạch dưới cần phải được xuất khẩu là tốt. – Michelle
Thật vậy, tôi sẽ thêm nó. – BAK