2014-11-08 115 views
0

我想創建一個具有可選內容的標記......比方說,我有一個標籤標籤/可選內容視圖捻:</p> <p><strong>應用程序/視圖/標籤/ part.scala.html</strong>:

@(param: String)(content: Html = null) 

@if(content == null) { 
    @param: Your tag has no content... 
} else { 
    @param: @content 
} 

而且我喜歡用它在我的觀點是:

@tags.part("foo"){ <b>Good!</b} } 

@tags.part("bar") 

不幸的是第二個電話給我的編譯錯誤:

missing arguments for method apply in object part;

follow this method with `_' if you want to treat it as a partially applied function

我如何可以通過它無需使用@tags.part("bar"){ }@tags.part("bar"){_}(和標籤if body != "_"檢查)?

回答

1

您的來電:

@tags.part("bar") 

是咖喱調用 - 返回功能應用 - 而不是一個對象。

爲您的代碼的解決方法是調用應用功能:

@tags.part("bar")() 

如果你想打電話:

@tags.part("bar") 

你應該定義

@(param: String)(implicit content: Html) 

和定義隱含的HTML上下文或定義爲

@(param: String,content: Html = null) 
  • 但你必須打電話:

@tags.part("foo")(Html("<b>Good!</b>")) - 什麼是容易出錯。

去年解決方案解決方法是創建方法,並調用它:

@good = {<b>Good!</b>} 

@tags.part("foo")(good) 
+0

隱含內容的伎倆要求,THX – biesior 2014-11-10 11:27:44