Coffeescript 一个简单的SlickGrid下拉列表选择列表编辑器

Coffeescript 一个简单的SlickGrid下拉列表选择列表编辑器,coffeescript,slickgrid,Coffeescript,Slickgrid,我想要使用标准html选择列表在slickgrid中编辑值的最简单解决方案 stackoverflow上有很多答案,所有这些都告诉您实现自己的SelectCellEditor。以下是一些例子: 但这些示例都是javascript,因此有点冗长 所以我要用一个精简的咖啡脚本来回答我自己的问题。它适用于简单的选择列表,并且在您想要喜欢的时候很容易扩展。CoffeeScript中的一个简单的SlickGrid SelectCellEditor class SelectCellEditor

我想要使用标准html选择列表在slickgrid中编辑值的最简单解决方案

stackoverflow上有很多答案,所有这些都告诉您实现自己的
SelectCellEditor
。以下是一些例子:

但这些示例都是javascript,因此有点冗长


所以我要用一个精简的咖啡脚本来回答我自己的问题。它适用于简单的选择列表,并且在您想要喜欢的时候很容易扩展。

CoffeeScript中的一个简单的SlickGrid SelectCellEditor

class SelectCellEditor 
    last=undefined
    constructor:(@args) ->
        options = @args.column.options.split(",")
        @select=$("<select/>")
        .append("<option value=\"#{o}\">#{o}</option>" for o in options)
        .appendTo(@args.container)
        .focus()

    loadValue: (item) -> 
        last = item[@args.column.field]
        @select.val last

    serializeValue  : -> @select.val()
    destroy         : -> @select.remove()
    focus           : -> @select.focus()
    isValueChanged  : -> @select.val() isnt last
    validate        : -> {valid: true, msg: null}
    applyValue      : (item, state) -> item[@args.column.field] = state

我认为,这实际上是一个很好的提问和回答你自己问题的案例。为什么以前没人捡到它?
columns = [
    // Other slickgrid columns ...
    { 
        id      : "colour", 
        name    : "Colour", 
        field   : "Colour", 
        options : "Red,Green,Blue", 
        editor  : SelectCellEditor
    }
]