백본으로 아주 간단한 앱을 설정 중이며 오류가 발생합니다."Uncaught TypeError : undefined가 함수가 아닙니다."- Beginner Backbone.js Application
Uncaught TypeError: undefined is not a function example_app.js:7
ExampleApp.initialize example_app.js:7
(anonymous function)
이 오류가 크롬 Inspector에서 (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
모델/과제 .js
var Task = Backbone.Model.extend({});
col lections/tasks.js
var Tasks = Backbone.Collection.extend({
model: Task,
url: '/tasks'
});
라우터/
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);
}
});
을 tasks.js 그리고 여기에 내가 모든 파일을 호출하고있어 증거이다 (나는 생각한다) :
<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'에 대한 언급이 없기 때문에 오류가 어디에서 오는 것 같습니까? 우리가 도와 드리겠습니다. 오류 메시지를 게시하고 오류 코드를 게시하십시오 메시지 참조. –