Звучит так, будто вы хотите перебрать список объектов и создать ссылки, которые при нажатии вызывают некоторый код JavaScript, который имеет доступ к исходным объектам.
На данный момент самый простой способ сделать это - связать контекст шаблона с новым настраиваемым представлением. Вы можете увидеть все в действии на этом JSFiddle: http://jsfiddle.net/67GQb/
Шаблон:
{{#each App.people}}
{{#view App.PersonView contentBinding="this"}}
<a href="#">{{content.fullName}}</a>
{{/view}}
{{/each}}
Код приложения:
App = SC.Application.create();
App.Person = SC.Object.extend({
fullName: function() {
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
});
App.people = [
App.Person.create({ firstName: "Yehuda", lastName: "Katz" }),
App.Person.create({ firstName: "Tom", lastName: "Dale" })
];
App.PersonView = SC.View.extend({
mouseDown: function() {
// Note that content is bound to the current template
// context in the template above.
var person = this.get('content');
alert(person.get('firstName'));
}
});
Тем не менее, мы понимаем, что это немного громоздко, и у нас есть некоторые идеи для дальнейшей оптимизации процесса, над которым мы будем работать в предстоящие недели.