Pla*_*Ton 2 javascript coffeescript backbone.js
刚刚开始使用backbone.js,我注意到的一件事是我的许多模型,集合和视图共享一些非常相似的方法.我想重构它们并从提取的位置(/ lib?)调用它们.我去搜索文档和/或示例,并对我发现的很少(特别是没有)感到惊讶.那么,有几个问题:
任何想法都赞赏 - 提前感谢.
(编辑)示例添加:
从视图中获取此代码.(不可否认,它太短暂实际上值得重构,但它的简单性使它成为一个简洁的例子)
destroy: () ->
@model.destroy()
@remove()
return false
Run Code Online (Sandbox Code Playgroud)
假设我想将其重构为:
destroy: () ->
restful_destroy_method(this)
Run Code Online (Sandbox Code Playgroud)
然后称之为:
restful_destroy_method: (view) ->
view.model.destroy()
view.remove()
return false
Run Code Online (Sandbox Code Playgroud)
来自一个公共图书馆.有没有其他人似乎这样做的原因?
这取决于具体情况,以及您的常用代码.
就你的例子而言,我可能会做的是创建一个更具体的View来扩展.
对于直接的JavaScript表示道歉,我在CoffeeScript中不能流利地使用它来回答问题.
DestroyableView = Backbone.View.extend({
destroy: function () {
this.model.destroy();
this.remove();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
然后,new Backbone.View()
我创建了new DestroyableView()
s 而不是创建s.DestroyableView
可以有其他常用功能,或者您可以创建几个不同的父定义,并使用_.extend()
它们全部应用于单个对象.