如何在ember.js中获取文本框值

sil*_*abu 5 textbox ember.js

我就在前一天开始研究ember.js.我不知道如何在提交时获取文本框值.我试过这样的

这是HTML

    <script type="text/x-handlebars" data-template-name="index">
    <div >
     <p>{{view Ember.TextField valueBinding="fname"}}</p>
    </div>
    <div>
    <p>{{view Ember.TextField valueBinding="lname"}}</p>
    </div>
    <button {{action save}}>submit</button>
    </script>
Run Code Online (Sandbox Code Playgroud)

这是我的ember.js文件

          App = Ember.Application.create();
          App.IndexController = Ember.ObjectController.extend({

           save:function()
           {
              var fname=this.get('fname');
              var lname=this.get('lname');
              alert(fname+','+lname);


           }
          });
Run Code Online (Sandbox Code Playgroud)

无论何时我点击提交按钮,我都会在alert.so如何获得价值?我希望有人能帮助我继续使用ember.js

小智 10

在这样的js

App.WebFormController = Ember.Controller.extend({
    fname: null,
    lname: null,
    save: function () {
        var fname = this.get('fname');
        var lname = this.get('lname');
        alert(fname + ',' + lname);
    }
});
Run Code Online (Sandbox Code Playgroud)

不需要模型

在这样的模板中

<script type="text/x-handlebars" data-template-name="web_form">
    <form {{action save on="submit"}}>
        <div >
            <p>{{input type="text" valueBinding="fname"}}</p>
        </div>
        <div>
            <p>{{input type="text" valueBinding="lname"}}</p>
        </div>
        <button>submit</button>
    </form>
</script>
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,谢谢.对于那些现在遇到这个问题的人来说,更新版本的Ember(至少从v 1.10+开始)使用'value'而不是'valueBinding'.像这样:`{{input type ="text"value = fname}}`(注意fname周围没有引号). (2认同)

Mar*_*ior 3

您的问题是您的表单没有模型。您可以使用modelsetupControllerhook 来提供它。

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return {};
  },
  // or
  setupController: function(controller) {
    controller.set('model', {});
  }
});
Run Code Online (Sandbox Code Playgroud)

另外一些提示:

在表单中使用action name on="submit",而不是action name在提交按钮中。因此,当用户在输入中按下回车键时,您可以执行该操作。

助手input type="text"是一个快捷方式view Ember.TextField

<script type="text/x-handlebars" data-template-name="index">
    <form {{action save on="submit"}}>
        <div >
            <p>{{input type="text" valueBinding="fname"}}</p>
        </div>
        <div>
            <p>{{input type="text" valueBinding="lname"}}</p>
        </div>
        <button>submit</button>
    <form>
</script>
Run Code Online (Sandbox Code Playgroud)

这里有一个现场演示