Я пытаюсь следовать учебному руководству по игре, которое можно увидеть в "localhost: 9000".
Как говорится, я редактировал файл и компилировал, но он не показал результат, который я ожидал. Следуйте за тем, что я сделал.
Редактировать приложение.scala
package controllers
import play.api._
import play.api.mvc._
import play.api.data._
import play.api.data.Forms._
import models.Task
object Application extends Controller {
val taskForm = Form("label" -> nonEmptyText)
def index = Action {
//Ok(views.html.index("Your new application is ready."))
//Ok("Let Play!")
Redirect(routes.Application.tasks) }
def tasks = Action {
Ok(views.html.index(Task.all(), taskForm)) } def newTask = Action { implicit request =>
taskForm.bindFromRequest.fold(
errors => BadRequest(views.html.index(Task.all(), errors)),
label => {
Task.create(label)
Redirect(routes.Application.tasks)
}
)
} def deleteTask(id: Long) = TODO
}
make/alpha/controllers/models/Task.scala
package models
case class Task(id: Long, label: String)
object Task {
def all(): List[Task] = Nil
def create(label: String) {}
def delete(id: Long){}
}
наконец, я отредактировал /alpha/conf/routes
# Routes # This file defines all application routes (Higher priority routes first) # ~~~~ # Home page GET / controllers.Application.index # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.at(path="/public", file) #Tasks GET /tasks controllers.Application.tasks POST /tasks controllers.Application.newTask POST /tasks/:id/delete controllers.Application.deleteTask(id: Long)
затем я побежал. Я ожидал область формы и кнопку "создать". Кнопка отлично, а форма - нет. Я получил несколько сообщений вместо формы. ниже это сообщение.
BaseScalaTemplate (play.api.templates.HtmlFormat$@6435477c) (taskForm ("label"))
Я не могу отследить это, потому что это не ошибка. Есть ли подсказка, чтобы исправить эти ошибки? Если вы дадите решение или подсказку, которая будет очень оценена: D
========== Спасибо за участие в моей проблеме ======================
[index.scala.html]
> @* Comment : @(message: String) *@ @(task: List[Task], taskForm:
> Form[String]) @import helper._
>
> @main("Todo list") {
>
> <h1>@task.size task(s)</h1>
>
> <ul>
> @task.map { task =>
> <li>
> @task.label
>
> @form(routes.Application.deleteTask(task.id)) {
> <input type="submit" value="Delete">
> }
> </li>
> } </ul>
>
> <h2>Add a new task</h2>
>
> @form(routes.Application.newTask) {
> @inputText (taskForm("label"))
> <input type="submit" value="Create"> } }
Я нашел ошибку. Это действительно разочаровано :-( Между @inputText и параметрами есть пробел.
Должен быть:
@inputText (taskForm("label")) -- change to --> @inputText(taskForm("label"))
В любом случае, спасибо за помощь: D