模型/查看不同的文件(Models/View in Different Files)
我只是尝试使用todo示例将backbone.js用于我的项目。 在我的app.js文件中,我尝试实例化我的视图/模型/集合等但我尝试得到错误消息:应用程序未在TodoList中定义。
HTML:
<head> <script type="text/javascript" src="js/json2.js"></script> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="js/underscore-min.js"></script> <script type="text/javascript" src="js/backbone-min.js"></script> <script type="text/javascript" src="js/backbone-localstorage.js"></script> <script type="text/javascript" src="js/models/models.js"></script> <script type="text/javascript" src="js/collections/collections.js"></script> <script type="text/javascript" src="js/views/views.js"></script> <script type="text/javascript" src="js/views/app.js"></script> <script type="text/javascript" src="js/app.js"></script>
app.js(我的应用程序的root):
var app = { models:{}, collections:{}, views:{} }; jQuery(function($) { var Todos = new app.collections.TodoList; var test = new Todo; var test2 = new TodoView; var appView = new AppView({}); });
collections.js:
app.collections.TodoList = Backbone.Collection.extend({ model: Todo, localStorage: new Store("todos"), done: function() { return this.filter(function(todo) { return todo.get('done'); }); }, remaining: function() { return this.without.apply(this, this.done()); }, nextOrder: function() { if (!this.length) return 1; return this.last().get('order') + 1; }, comparator: function(todo) { return todo.get('order'); }
});
I just tried to adopt backbone.js to my project with the todo example. In my app.js file I try to instantiate my views/models/collections etc. but I try to I get the error msg: app is not defined in TodoList.
HTML:
<head> <script type="text/javascript" src="js/json2.js"></script> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="js/underscore-min.js"></script> <script type="text/javascript" src="js/backbone-min.js"></script> <script type="text/javascript" src="js/backbone-localstorage.js"></script> <script type="text/javascript" src="js/models/models.js"></script> <script type="text/javascript" src="js/collections/collections.js"></script> <script type="text/javascript" src="js/views/views.js"></script> <script type="text/javascript" src="js/views/app.js"></script> <script type="text/javascript" src="js/app.js"></script>
app.js(root for my application):
var app = { models:{}, collections:{}, views:{} }; jQuery(function($) { var Todos = new app.collections.TodoList; var test = new Todo; var test2 = new TodoView; var appView = new AppView({}); });
collections.js:
app.collections.TodoList = Backbone.Collection.extend({ model: Todo, localStorage: new Store("todos"), done: function() { return this.filter(function(todo) { return todo.get('done'); }); }, remaining: function() { return this.without.apply(this, this.done()); }, nextOrder: function() { if (!this.length) return 1; return this.last().get('order') + 1; }, comparator: function(todo) { return todo.get('order'); }
});
原文:https://stackoverflow.com/questions/9482844
更新时间:2022-03-22 12:03