【问题标题】:Generating Forms with Ember.js and EmberFire使用 Ember.js 和 EmberFire 生成表单
【发布时间】:2014-02-10 20:29:05
【问题描述】:

我有一个由{{#each}} 循环生成的表,它显示用户的名字和姓氏。我想添加一个删除按钮来删除该行上的记录。我也在使用 EmberFire 连接 Firebase。

将该行中的数据与删除按钮相关联的最佳方式是什么?

以下是我的相关代码:

index.html

{{#each}}
  <tr>
    <td>
      {{this.first}}
    </td>
    <td>{{this.last}}</td>
    <td>
      <button>X</button>
    </td>
  </tr>
{{/each}}

router.js

App.IndexRoute = Ember.Route.extend({
  model: function() {
    return EmberFire.Array.create({
      ref: new Firebase(FirebaseRef + 'testObj')
    });
  },
  renderTemplate: function() {
    this.render('index');
    this.render('users', { 
      outlet: 'users',
      into  : 'index'
    });
  }
});

controller.js

App.IndexController = Ember.ArrayController.extend({
  actions: {
    register: function() {
      this.pushObject({
        'first' : this.get('firstName'),
        'last'  : this.get('lastName')
      });
    }
  }
})

谢谢!

【问题讨论】:

    标签: javascript ember.js firebase emberfire


    【解决方案1】:

    您可以向 IndexController 添加删除操作:

    App.IndexController = Ember.ArrayController.extend({
      actions: {
        register: function() {
          this.pushObject({
            'first' : this.get('firstName'),
            'last'  : this.get('lastName')
          });
        },
        delete: function(person) {
            this.content.removeObject(person);
        }
      }
    })
    

    然后将以下内容添加到您的 index.html:

    {{#each}}
      <tr>
        <td>
          {{this.first}}
        </td>
        <td>{{this.last}}</td>
        <td>
          <button {{action "delete" this}}>X</button>
        </td>
      </tr>
    {{/each}}
    

    【讨论】:

    • 是的,做到了!我曾假设我需要对每一行和它的按钮进行某种手动数据绑定。我想我会用 Ember 的魔力把它塞进去 :) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多