这是 router 中的一个函数。
routes: { "post/:id": "postEdit"},postEdit: function (id) { console.log('router.js, got router: #/post/' + id); UILoading($("#main")); var model = new PostModel({_id: id}); model.fetch({ success: function () { new PostEditView({model: model}); }, error: function () { console.log("failed, on router: #/post/" + model.id); } }); }
接下来是 View 的代码
var PostEditView = Backbone.View.extend({ el: '#main', template: doT.template(PostEditTemplate), events: { 'click #savePost': 'save' }, initialize: function () { _.bindAll(this, 'render'); this.model.bind("change", this.render, this); var converter = Markdown.getSanitizingConverter(); this.editor = new Markdown.Editor(converter); this.render(); }, render: function () { this.$el.html(this.template(this.model.toJSON())); this.editor.run(); }, save: function () { this.model.set({ title: $("#post_title").val(), slug: $("#post_slug").val(), created: $("#post_created").val(), tags: $("#post_tags").val().split(','), content: $(".post_content").val() }); this.model.save(); } });
最后发现,当访问过多次#/post/5103fbb3817feb1c10000001,/#/post/5103c114ce4c724c12000002 后,save
这个函数会重复调用。
慕工程0101907
繁星点点滴滴
相关分类