の「ビュー」これは骨格とrequire.jsを使うのは初めてであり、私は私の見解で問題を見つけるのに苦労しています:プロパティを読み取ることができません未定義
Cannot read property 'View' of undefined // search.js:8
私のディレクトリ構造は次のとおりです。
.
├── 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
マイ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();
});
マイ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
};
});
マイ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
};
});
と私のview/search.js
:
define([
'jquery',
'underscore',
'backbone',
'text!templates/search.html'
], function($, _, Backbone, searchTemplate){
// console.log($,_,Backbone);
var SearchView = Backbone.View.extend({
...
});
return SearchView;
});
私は上記にconsole.logをコメント解除すると、_
とBackbone
両方がundefined
ですが$
ではありません。私は何を逃したのですか?すべての私のlibファイルは最新バージョンです。
はありがとう私の日の節約のために!ところで、アンダースコアもエクスポートする必要があります。 – Michelle
確かに、私はそれを追加します。 – BAK