Javascript 如何改进我的主干代码
我开始在Backbone.js中进行开发。 我仍然不知道如何使用最佳实践编写代码 我的应用程序正在工作,但我有一些问题,例如,比较器不工作 我真的会帮助他变得更好 视图: 收藏:Javascript 如何改进我的主干代码,javascript,backbone.js,Javascript,Backbone.js,我开始在Backbone.js中进行开发。 我仍然不知道如何使用最佳实践编写代码 我的应用程序正在工作,但我有一些问题,例如,比较器不工作 我真的会帮助他变得更好 视图: 收藏: Todos.Collections.TasksCollection = Backbone.Collection.extend({ model: Todos.Models.TasksModel url: "/api/tasks.json", comparator: function (sort) {
Todos.Collections.TasksCollection = Backbone.Collection.extend({
model: Todos.Models.TasksModel
url: "/api/tasks.json",
comparator: function (sort) {
return -(new Date(sort.get('eventTime'))).getTime();
},
parse: function (response) {
return response;
}
});
型号:
Todos.Models.TasksModel = Backbone.Model.extend({
parse: function (response, options) {
return response;
}
});
路由器:
Todos.Routers.TasksRouter = Backbone.Router.extend({
routes: {
'': 'index'
},
initialize: function () {
var viewTasks = new Todo.Views.TasksView({
model: Todos.Models.TasksModel,
el: '.tasks-list'
});
}
});
App.js:
window.Todos = {
Models: {},
Collections: {},
Views: {},
Routers: {},
initialize: function () {
new Todos.Routers.TasksRouter();
Backbone.history.start({})
},
$(document).ready(function () {
Todos.initialize();
});
在视图中,尽量不要使用诸如获取、保存或设置之类的模型或集合功能。这不是视图的责任 示例:不要在集合中包含此.collection.fetch(),而是执行以下操作
this.collection = new Todos.Collections.TasksCollection();
this.collection.getSomething();
this.render();
this.listenTo(this.collection, 'reset', this.render);
this.listenTo(this.collection, 'change', this.render);
this.listenTo(this.collection, 'sort', this.render);
在集合中,添加一个方法来执行“fetch()”请求。
我不明白你为什么要声明解析函数。。你什么也没做。。
当我想在将JSON绑定到模型/集合之前更改JSON中的内容时,我喜欢使用parse函数
我看不出你在哪里调用比较器函数。。“sort”参数的值可能无效
在您的模型中,您正在再次使用解析。。我看不出原因
你的路由器没问题。
我喜欢你的代码。。就像你说的,对于初学者来说。真的很好
我建议你用短划线代替下划线。。。它有更多用于阵列的选项
尝试使用require.js加载js依赖项。。这对你会有很大帮助。
www.requirejs.org
希望有帮助。
比较器不工作
-所以调试它并告诉我们它是如何工作的。不工作:(“sort”只返回一项,但json有5个iten。如果我尝试log sort.eventTime,则返回未定义。
this.collection = new Todos.Collections.TasksCollection();
this.collection.getSomething();
this.render();
this.listenTo(this.collection, 'reset', this.render);
this.listenTo(this.collection, 'change', this.render);
this.listenTo(this.collection, 'sort', this.render);