0

我正在尝试升级此博客文章中显示的示例

https://medium.com/@mitch_23203/the-exact-same-app-in-hyperstack-7f281cef46ca

使用超堆栈模型,如后续博客文章,但它不起作用。

这是我更改后的代码:

class TodoIndex < HyperComponent

  def create_new_todo_item
    Todo.create(title: @todo)
    @title = nil
  end

  render(DIV, class: 'ToDo') do
    IMG(class: 'Logo', src: 'assets/logo.png', alt: 'Hyperstack Logo')
    H1(class: 'ToDo-Header') { 'Hyperstack To Do' }
    DIV(class: 'ToDo-Container') do
      DIV(class: 'ToDo-Content') do
        Todo.each do |item|
          TodoItem(key: item, item: item.title)
          .on(:delete_item) { item.destroy }
        end
      end
      DIV do
        INPUT(type: :text, value: @title)
        .on(:change) { |e| mutate @title = e.target.value }
        .on(:enter) { create_new_todo_item }
        BUTTON(class: 'ToDo-Add') { '+' }
        .on(:click) { create_new_todo_item }
      end
    end
  end
end

一切似乎都运行良好,新的 Todo 被保存,但属性为零。就像标题没有保存一样。

4

1 回答 1

4

它应该是:

def create_new_todo_item
  Todo.create(title: @title) # not @todo
  @title = nil
end

您将titleofTodo设置为其状态值 ( @todo)...

于 2019-03-30T21:32:58.660 回答