2016-07-23 1 views
0

が、私は次の宣言から始まりプレイ2.5テンプレートが適用されません。私はこのアクション・ジェネレータを持つコントローラで今トワールテンプレートのデフォルトのパラメータ値は

def document(title:String) = Action.async{implicit request => 
    documentService.findByTitle(title).map{ 
     case Some(d) => Ok(views.html.document(d)) 
     case None => Ok(main("No document found")(content = Html("There is no such document"))) 
    } 
    } 

だから私はテンプレートの呼び出しにmenuパラメータの値を渡さないと、私はこれがデフォルトのパラメータに基づいてコンパイルして動作することを期待値の意味はありますが、このコンパイルエラーが発生します:

[error] D:\Projects\feed\app\controllers\MainController.scala:28: missing arguments for method apply in class main; 
[error] follow this method with `_' if you want to treat it as a partially applied function 
[error] case None => Ok(main("No document found")(content = Html("There is no such document"))) 
[error]          ^
[error] one error found 
[error] (compile:compileIncremental) Compilation failed 

ここで何が間違っているのか説明できますか?

答えて

2

もう1組のかっこを追加します。

Ok(main("No document found")(content = Html("There is no such document")())) 

最後の括弧はありません。それはもう1つの引数を待つ関数です。呼び出す機能のタイプをチェックすることができます。私は私の例を示します:

def foo(a: Int = 3) = 41 

val one = foo //wan't compile 
val two: (Int) => Int = foo 
val three: Int = foo() 
+0

私は別のパラメータグループに 'menu'パラメータがあるからです。 –

+0

@AlexanderArendarは正確ではありません。あなたは関数を正しく呼び出さなかった。私はここにコードを置くことができないので、私は答えを更新しました。 – EnverOsmanov

関連する問題