这是router中的一个函数。routes:{"post/:id":"postEdit"},postEdit:function(id){console.log('router.js,gotrouter:#/post/'+id);UILoading($("#main"));varmodel=newPostModel({_id:id});model.fetch({success:function(){newPostEditView({model:model});},error:function(){console.log("failed,onrouter:#/post/"+model.id);}});}接下来是View的代码varPostEditView=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);varconverter=Markdown.getSanitizingConverter();this.editor=newMarkdown.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这个函数会重复调用。相当于之前的model没有被释放,事件重复执行了。如何解决这个问题呢?
GCT1015
12345678_0001
随时随地看视频慕课网APP
相关分类