2017-02-11 10 views
0

私は以下のコードを用意して、文字列のリストを取得してオプションメニューに戻します。しかし、スニペットのオートコンプリートの後に、 "パラメータcomputer:net.liftweb.util.CanBind [Inta => scala.xml.NodeSeqでのスカラー値を見つけることができませんでした。 ] "スカラーの文字列をhtmlに戻す

// The html code 
<select id="autoComplete" class="marketplace.pharmacy.list"> 
    <option id="drug">Drug Name</option> 
</select> 

// The snippet 
def getAutoComplete(str: String): CssSel = "#autoComplete" #> { 
    getRxAutoComplete(str) match { 
    case list => "select" #> list.map { drug => 
     drug #> ("option *" #> drug) 
    } 
    case List() => NodeSeq.Empty 
    } 
} 


// The code to return the results (simplified) 
def getRxAutoComplete(str: String): List[String] = { 
    val list = List("Amoxicillin", "Amoximoxi", "Amoxia") 
    list 
} 

答えて

0

暗黙的な変換がありません。そのような暗黙的な変換を定義するライブラリのいくつかのクラスをインポートして、それらを自分のスコープにインポートする必要があります。このクラスの正確な名前を見つけることは、図書館のドキュメンテーションでいくつかの調査を行うことにあります。

1

問題は、マッチステートメントで2つの異なるタイプを返すことです。最初はCssSelを返し、第二に、あなたが戻ってきているNodeSeq

あなたはどちらか変更して、それを修正することができます:

case List() => "*" #> NodeSeq.Empty 

のかnet.liftweb.utilで見つかったClearNodesメソッドを使用します。

case List() => ClearNodes 
+0

感謝を。私は、エントリの1つにNodeSeq.Emptyを使ってみました。コンパイラは、エントリの1つがNodeSeqであり、NodeSeq.EmptyがIntであると文句を言う。 –

+0

申し訳ありませんが、私はそれを詳しく見てから答えを更新しました。 – jcern

関連する問題