我設置了一個非常簡單的應用程序與骨幹,我得到一個錯誤。「Uncaught TypeError:undefined不是函數」 - 初學者Backbone.js應用程序
Uncaught TypeError: undefined is not a function example_app.js:7
ExampleApp.initialize example_app.js:7
(anonymous function)
這是錯誤是沒有顯示在Chrome檢查(init文件 - example_app.js):
var ExampleApp = {
Models: {},
Collections: {},
Views: {},
Routers: {},
initialize: function() {
var tasks = new ExampleApp.Collections.Tasks(data.tasks);
new ExampleApp.Routers.Tasks({ tasks: tasks });
Backbone.history.start();
}
};
這是我的任務index.haml文件
- content_for :javascript do
- javascript_tag do
ExampleApp.initialize({ tasks: #{raw @tasks.to_json} });
= yield :javascript
型號/ task.js
var Task = Backbone.Model.extend({});
col lections/tasks.js
var Tasks = Backbone.Collection.extend({
model: Task,
url: '/tasks'
});
路由器/ tasks.js
ExampleApp.Routers.Tasks = Backbone.Router.extend({
routes: {
"": "index"
},
index: function() {
alert('test');
// var view = new ExampleApp.Views.TaskIndex({ collection: ExampleApp.tasks });
// $('body').html(view.render().$el);
}
});
而這裏的證明,我打電話的所有文件(我認爲):
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/underscore.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/support.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/composite_view.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support/swapping_router.js?body=1" type="text/javascript"></script>
<script src="/assets/backbone-support.js?body=1" type="text/javascript"></script>
<script src="/assets/example_app.js?body=1" type="text/javascript"></script>
<script src="/assets/easing.js?body=1" type="text/javascript"></script>
<script src="/assets/modernizr.js?body=1" type="text/javascript"></script>
<script src="/assets/models/task.js?body=1" type="text/javascript"></script>
<script src="/assets/collections/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/task_view.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/views/tasks_index.js?body=1" type="text/javascript"></script>
<script src="/assets/routers/tasks.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/index.js?body=1" type="text/javascript"></script>
<script src="/assets/tasks/task.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
任何想法會很好。謝謝!
「pears_planner.js」的第12行是什麼?您不包含該代碼,但錯誤消息表明這是您問題所在。實際上我甚至可以說這可能是這個問題的唯一相關代碼。 –
對不起,應該說第7行(我在一個版本中有一些評論)。所以這將是初始化文件:'var tasks = new ExampleApp.Collections.Tasks(data.tasks);' – jake
等等,這樣錯誤是錯誤的?因爲你剛剛在註釋中輸入的代碼沒有提及'PearsPlanner.initialize',這是你的錯誤似乎來自哪裏......幫助我們幫助你,man ...發佈錯誤消息,並且代碼錯誤消息引用。 –