2014-12-18 1 views
1

Я использую рельсы 4 с emberjs. У меня есть массив пользователей, которые я получаю с сервера. Мне нужно отобразить последний объект в пользовательском интерфейсе. Кроме того, пользователь может добавлять новых пользователей в массив, но только последний/последний пользователь должен быть виден.отображение последнего объекта из динамического обновления массива + emberjs + handlebars

Моей Эмбер версия деталь, как

Ember  : 1.7.0-beta.1 
Ember Data : 1.0.0-beta.8.2a68c63a 
Handlebars : 1.3.0 
jQuery  : 1.11.1 

Моего текущие рули код выглядит. После добавления нового пользователя в массив пользователей отображаются новые данные пользователя.

{{each users}} 
    //display all the users here. 
{{/each}} 

Что я хочу что-то вроде этого

{{#each users}} 
    {{#if @last}} 
    //display user details 
    {{/if}} 
{{/each}} 

Я попытался добавить свойство в соответствующем контроллере и удалили «каждый» цикл. Я отобразил детали последнего пользователя, которые работают. Но если я добавлю нового пользователя, пользовательский интерфейс все еще отображает предыдущие данные пользователя.

lastUser: (->                                
    return @model.users.get('lastObject') 
).property('@model.users') 

Как это может быть достигнуто? Благодарю.

ответ

2

Вы можете просто использовать следующее:

{{users.lastObject.firstName}} 
{{users.lastObject.lastName}} 

или более чисто:

{{#with users.lastObject}} 
    {{firstName}} 
    {{lastName}} 
{{/with}} 

С просто переопределяет this внутри блока к объекту при условии - в этом случае users.lastObject объекта. Выбранное свойство lastUser не нужно, потому что Ember перечисления уже предоставляют это бесплатно!

+1

Стоит отметить: вы, вероятно, будете хотеть, чтобы убедиться, что ваш 'users' массив отсортирован что-то значимое - нет никакой гарантии, что в магазине будут ваши записи в порядке, который имеет смысл для вас! – mpowered