【问题标题】:How to retrieve form data in Emberjs如何在 Emberjs 中检索表单数据
【发布时间】:2017-04-04 04:40:58
【问题描述】:

这是我的第一个 Ember 应用程序,我真的需要一些帮助。我创建了一个登录页面,每个玩家的姓名都有两个输入字段。目标是在单击提交时捕获每个名称并将它们推送到模型(或存储?),以便我可以从另一个模板中检索它们。

这是表单模板:

{{!-- templates/signin.hbs --}}
<div class="enterNames">
  <h2>Player Sign In</h2>
  <form {{action save on="submit"}} >
    <div class="p1input">
      {{input type="text" valueBinding="p1name" placeholder="Player 1" cols="60" rows="1"}}
    </div>
    <div class="p2input">
      {{input type="text" valueBinding="p2name" placeholder="Player 2" cols="60" rows="1"}}
    </div>
    <button>Submit</button>
  </form>
</div>

这是否可以在路线中使用模型挂钩来完成?如果是这样,那条路线会是什么样子?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以在signin.js 控制器中定义 p2name 属性并将其绑定到输入助手,如下所示,

    {{input type="text" value={{p2name}} placeholder="Player 2" cols="60" rows="1"}}
    

    因此,每当您在文本字段中键入值时,该值将在 p2name 属性中可用。因此,您可以通过在相应的控制器文件中使用以下内容将此控制器注入另一个模板中,

    signCont: Ember.inject.controller('signin')
    

    您可以使用{{signCont.p2name}} 和js 文件this.get('signCont.p2name') 检索模板中的属性。请记住,您只能在控制器中注入控制器,而不能在其他地方。

    编辑:定义属性就像在 ember 对象中定义属性一样。我为你创建了twiddle。请使用/game url 进行检查

    【讨论】:

    • 非常感谢您的帮助!您介意详细说明如何在控制器中定义 p2name 属性吗?
    • @BrittShroyer 更新了 ember-twiddle 示例,请检查一下。我正在显示从应用程序控制器到游戏控制器的 p2name 属性
    • 它工作正常。这个例子真的很有帮助。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多