У меня есть тот же вопрос, что и в этом принятом. Play 2, как повторно использовать HTML-код с тегом Единственное, что, это не работает для меня. У меня есть это представление в /app/views/tags/_pricing_plan.scala.html, и когда я пытаюсь "включить" его в другое представление в другой пакет с помощью @tags._pricing_plan()
я просто получаю
not found: value tags
Возможно, вам не хватает заголовка на _pricing_plan.scala.html
. Если вы не передали значения, вам нужен заголовок @().
Каждый шаблон по существу скомпилирован до функции/класса в пакете, который вы помещаете в html. Это означает, что для его использования вы должны иметь его в области видимости (через @import) или использовать полное имя шаблона, включая пакет, так же, как обычный Java или код Scala.
В дополнение к тому, как он работает на Java, вы также можете использовать относительные имена пакетов, поскольку Scala позволяет это, поэтому шаблон, живущий в app.views, может ссылаться на ваш фрагмент, вызывая его с помощью @tags._pricing_plan(), как вы описали, будет работать. Но нет, если вы вызываете его из шаблона в каком-то другом пакете, тогда он укажет на thatpackage.tags, который, вероятно, не будет существовать.
Поэтому либо используйте полное имя views.tags._pricing_plan, либо импортируйте его, чтобы иметь возможность использовать его.
play clean
и сноваplay ~run
иногда для воспроизведения требуется некоторое время для распознавания новых пакетов / представлений / тегов