4

在我的 ember 视图中,我想在此期间获取该人并将其传递给操作,但目前我仅在路由器中获得一个 jquery 事件(好奇这是否在 1.0 之前的版本中免费绑定到上下文)

模板

<script type="text/x-handlebars" data-template-name="person">
       {{#each person in controller}}
          <li> 
          {{person.username}}
          <input type="submit" value="delete" {{action removePerson person}}/>                   
          </li>
       {{/each}}
</script>

带有我希望通过人员上下文调用的方法的路由器

Router: Ember.Router.create({
  root: Ember.Route.extend({
    index: Em.Route.extend({
      route: '/',
      removePerson: function(router, context) {
        router.get('personController').removePerson(context);
      },

控制器更详细

PersonController: Ember.ArrayController.extend({
      content: [],                                                                               
      addPerson: function (username) {
        var person = PersonApp.Person.create({
          username: username
        });
        this.pushObject(person);
      },
      removePerson: function (person) {
        this.removeObject(person);
      }
    }),
4

1 回答 1

5

传递给路由器操作处理程序的第二个变量实际上是事件。上下文是此事件的变量。像这样重写它:

Router: Ember.Router.create({
  root: Ember.Route.extend({
    index: Em.Route.extend({
      route: '/',
      removePerson: function(router, event) {
        router.get('personController').removePerson(event.context);
      },
于 2012-09-02T20:45:10.037 回答