Я пытаюсь выполнить округление Javascript в своем приложении Play Framework и сталкиваюсь с некоторыми ошибками:
У меня есть кнопка с идентификатором #next
, которая должна использовать Ajax для загрузки нового изображения и текста в div с именем #content
.
В моем Application.java я реализовал следующие два метода:
public static Result nextUser(int i) {
return ok(content.render(users.get(i)));
}
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(
Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.nextUser()
)
);
}
Сделал этот файл content.scala.html:
@(user: User)
<img id="user" src="@routes.Assets.at(user.getImg())" />
<h2>@user.getStatus()</h2>
Добавил это в файл маршрутов:
GET /nextuser controllers.Application.nextUser(i: Int)
GET /assets/javascripts/routes controllers.Application.javascriptRoutes()
А затем попробовал этот код Javascript:
<script type="text/javascript" src="@routes.Application.javascriptRoutes()"></script>
<script>
var userIndex = 1;
$("#next").click(function() {
jsRoutes.controllers.Application.nextUser(userIndex).ajax({
success : function(data) {
$("#content").html(data);
},
error: function(err) {
}
});
});
</script>
В файле Application.java в методе javascriptRoutes контроллеры.routes. не может быть найден.
Кто-нибудь знает, что вызывает ошибку?
Редактировать:
Благодаря этому я смог устранить первоначальную ошибку: Невозможно разрешить методы обратной маршрутизации в IntelliJ
Теперь это выглядит так:
Метод nextUser не может быть найден, даже если он четко определен.
Когда я компилирую приложение с помощью activator compile
и запускаю его с помощью activator run
, моя консоль Chrome выглядит так:
так что файл маршрутов почему-то не может быть найден.
JavaScriptReverseRouter
, как описано в документации: playframework.com/documentation/2.5 .x/ — обратите внимание, что встроенный маршрутизатор не работает с методами, имеющими параметры; вам действительно нужно использоватьJavaScriptReverseRouter
. - person koppor   schedule 01.08.2016