如何使用动作帮助器访问ember 1.0 pre中的特定上下文

时间:2012-09-02 17:41:47

标签: ember.js

在我的余烬视图中,我希望在每个人中获取该人并将其传递给动作但是目前我只在路由器中获得了一个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>

路由器w /我希望调用w / person上下文的方法

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);
      }
    }),

1 个答案:

答案 0 :(得分:5)

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

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