Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coffeescript 覆盖多个脊椎模型中的获取_Coffeescript_Spine.js - Fatal编程技术网

Coffeescript 覆盖多个脊椎模型中的获取

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'

我需要在所有脊椎模型中重写Spine的
@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中放入许多有用的函数,这些函数将在所有其他模型中可用