0

編集可能なコンテンツを含むいくつかのセルを含む HTML テーブルをレンダリングするリフト コードがあります。

編集にはeditinplace.jsを使用しています

<script src="/js/jquery.editinplace.js"></script> 

editableテーブルのリフト レンダリングで属性を設定します。

def renderTable(columns: List[(String,List[Model])]) = {
          {val entityCountMax = columns.maxBy(_._2.size)
           for(i <- 0 until entityCountMax._2.size) yield {
            <table style="font-size:80%; float: left; margin-left: 30px; width: auto;" class="table table-striped table-condensed table-hover">
                <tr>{ <th> { prettifyClassName(entityCountMax._2(i))} </th> % Attribute(None, "colspan", Text((columns.size+1).toString), Null)}</tr>
                {renderHeader(columns.map(_._1))}
            {for((key,value) <- entityCountMax._2(i).fields) yield {
            <tr>
            <th style="text-align: right;">{key}</th>
            {for(j <- 0 until columns.size) yield {
              <td>{try{
                            printField(columns(j)._2(i).fields.get(key))
                  }catch { case e:Exception => ""}
             }</td> % Attribute(None, "class", Text({ if(columns(j)._1 contains "DB") "editable" else "" }), Null)
            }}
            </tr>
        }}
        </table> 
         }} ++
          <script><![CDATA[ 
            $(document).ready(function(){
            $('.editable').editInPlace({ callback: function(unused, enteredText){ 
            $(this).css('color','red'); return enteredText;},
            default_text: ''
            })});]]>
          </script>
        } 

上記のレンダリング機能をあまり見ないでください。問題なく機能しており、目的のセルを問題なく編集できます。編集されたセルは赤で表示されます。

私が今やりたいことは、編集されたセルの内容を取得し、それを自分の scala アプリケーションに返すことですが、その方法がわかりません。

私がやろうと思っていたのは、自分のモデル用の DIY リフト CRUD を作成することです。問題は、このように (私は推測しています)、すべてのセルを 1 つずつ編集するための HTML ページを作成する必要があることですが、このソリューションはあまり好きではありません。

だからここに本当の質問があります:

html テーブルを scala のデータ構造に直接マップすることは可能ですか? もしそうなら、どうすればいいですか?

4

1 に答える 1