Coffeescript 覆盖多个脊椎模型中的获取
我需要在所有脊椎模型中重写Spine的Coffeescript 覆盖多个脊椎模型中的获取,coffeescript,spine.js,Coffeescript,Spine.js,我需要在所有脊椎模型中重写Spine的@fetch()方法。目前我有如下代码重复: TastypieEndpointMixin = fromJSON: (data) -> return unless data return Spine.Model.fromJSON(data.objects) class App.models.Position extends Spine.Model @configure 'Position', 'code'
@fetch()
方法。目前我有如下代码重复:
TastypieEndpointMixin =
fromJSON: (data) ->
return unless data
return Spine.Model.fromJSON(data.objects)
class App.models.Position extends Spine.Model
@configure 'Position', 'code', 'name'
@extend Spine.Model.Ajax
@extend TastypieEndpointMixin
@url: '/api/v1/position/?format=json'
validate: ->
'code is required' unless @code
@fetch: ->
defer = $.Deferred()
@one "refresh", ->
defer.resolve()
super
return defer
class App.models.Player extends Spine.Model
@configure 'Player', 'first_name', 'last_name', ...
@extend Spine.Model.Ajax
@extend TastypieEndpointMixin
@url: '/api/v1/player/?format=json'
@fetch: ->
defer = $.Deferred()
@one "refresh", ->
defer.resolve()
super
return defer
我的问题是:如何创建包含@fetch()
的某种形式的父类
我知道这应该是一个简单的问题来解决。我尝试了很多选择(包括扩展
Spine.Model
和Spine.Model.Ajax
),但没有任何效果,我似乎无法解决它。这就是我解决完全相同问题的方法:
class BasicModel extends Spine.Model
@fetch: ->
defer = $.Deferred()
@one "refresh", ->
defer.resolve()
super
defer
class App.models.Player extends BasicModel
#This class now has the fetch() function from the BasisModel
当然,您可以在BasicModel中放入许多有用的函数,这些函数将在所有其他模型中可用