Ember.js 使用余烬视图在控制器中捕获多个文本框值

Ember.js 使用余烬视图在控制器中捕获多个文本框值,ember.js,handlebars.js,Ember.js,Handlebars.js,嗨,我正在使用emberJS制作一个表单,这是我的应用程序控制器 App = Ember.Application.create(); App.ApplicationController = Ember.Controller.extend({ appName: 'Tag Editor', arrayVal : ['A', 'B', 'C', 'F', 'X'], actions: { formSubmit: function() { cons

嗨,我正在使用emberJS制作一个表单,这是我的应用程序控制器

 App = Ember.Application.create();

 App.ApplicationController = Ember.Controller.extend({
    appName: 'Tag Editor',
    arrayVal : ['A', 'B', 'C', 'F', 'X'],
    actions: {
    formSubmit: function() {
         console.log(this.get('views'));
    }
   }
});
我的模板我正在使用应用程序模板,基于applicationcontroller中提到的数组,emberview将按照App.TextView呈现

  <script type="text/x-handlebars" data-template-name="application">
    <div {{bind-attr class=":appName"}}><h1>{{appName}}</h1></div>
    {{#each arrayVal}}
     <div>
      {{view App.TextView entity=this}}
    </div>
   {{/each}}
   <div>
   <button {{action 'formSubmit'}}>Submit</button>
  </div>
</script>
通过每个助手呈现应用程序模板中的所有文本框视图并动态创建所有视图,这将很好地工作

//但对于我来说,在每个视图中,我都希望在applicationController中单击formSubmit时捕获用户的firstName和lastName的所有条目


在当前场景中,我的arrayVal长度为5,它将根据我的代码动态创建5个文本视图。在每个文本视图中都有一个firstName和lastName,如何在控制器操作中捕获所有firstName和lastName

您可以使用
this.get('childview')访问视图
。您可能希望使用
TextView
中的某些唯一属性筛选结果,以便忽略其他子视图。然后基本上映射整个数组并返回
firstName
lastName

formSubmit: function() {
  var values = this.get('childViews')
    .filterBy('templateName', 'myentity-view')
    .map(function(item) {
      return {
        firstName: item.get('firstName'),
        lastName: item.get('lastName')
      };
    });
}

    App.TextView = Ember.View.extend({
        templateName: 'myentity-view'
    });
formSubmit: function() {
  var values = this.get('childViews')
    .filterBy('templateName', 'myentity-view')
    .map(function(item) {
      return {
        firstName: item.get('firstName'),
        lastName: item.get('lastName')
      };
    });
}