4

私の残り火ビューでは、この間に人を取得してアクションに渡してもらいたいのですが、現在はルーターで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/人のコンテキスト

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

ルータアクションハンドラに渡される2番目の変数は、実際にはイベントです。コンテキストはこのイベントの変数です。次のように書き直します。

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 に答える