2013-04-16 5 views
0

В шаблоне я просматриваю все Users. От каждого User Я хотел бы подключить кнопку к функции xyz в UserController (singluar). Как я могу использовать {{action}}, чтобы иметь возможность это сделать? Сейчас все мои попытки заканчиваются на UsersController.Как подключить кнопку к другому контроллеру

index.html

<script type="text/x-handlebars" data-template-name="users"> 
    <table> 
    {{#each model}} 
     <tr> 
     <td>{{lastName}}</td> 
     <td><button {{action "xyz" this}}>Xyz</button></td> 
     </tr> 
    {{/each}} 
    </table> 
</script> 

app.js

App = Ember.Application.create(); 

App.Store = DS.Store.extend({ 
    revision: 12, 
    adapter: 'DS.FixtureAdapter' 
}) 

App.Router.map(function() { 
    this.resource('about'); 
    this.resource('users', function() { 
    this.resource('user', { path: ':user_id' }) 
    }) 
}); 

App.UsersRoute = Ember.Route.extend({ 
    model: function() { 
    return App.User.find(); 
    } 
}); 

App.UserController = Ember.ObjectController.extend({ 
    xyz: function() { 
    console.log('Bingo!') 
    } 
}) 

App.User = DS.Model.extend({ 
    lastName: DS.attr('string'), 
}) 

App.User.FIXTURES = [{ 
    id: 1, 
    lastName: "Clinton" 
}, { 
    id: 2, 
    lastName: "Obama" 
}] 

ответ

1

Одним из решений может быть использование itemController="user" свойство each помощника. Таким образом, целевой контроллер должен быть экземпляром UserController для каждого пользователя.

{{#each model itemController="user"}} 
    <tr> 
    <td>{{lastName}}</td> 
    <td><button {{action "xyz" this}}>Xyz</button></td> 
    </tr> 
{{/each}}