2013-04-26 6 views
0

Я новичок в Backbone и пытаюсь сделать данные таблицы с использованием магистрали, она добавляет, редактирует, удаляет (CRUD).Невозможно добавить несколько моделей в мою коллекцию

В этом процессе я сделал часть добавления, все работает нормально. Но я не могу добавить более одного человека, используя кнопку создания нового списка. Кто-нибудь помогает мне разобраться в проблеме и как это исправить?

Вот выдержка:

шаблона:

<tbody> 
    <% _.each(users, function(user){ %> 
     <tr> 
     <td><%= user.get("firstName") %></td> 
     <td><%= user.get("lastName")%></td> 
     <td><%= user.get("age") %></td> 
     <td><a href="#/edit/<%= user.get("id") %>" class="btn">Edit</a></td> 
     </tr> 
    <%})%> 
</tbody> 

// Функция

render:function(){ 
var template = _.template($("#listTempalate").html(), {users:this.collection.models}); 
     this.$el.html(template) 
}, 

Вот это jsfiddle

Спасибо заранее.

ответ

2

Когда вы нажимаете данные в свой массив, вы не добавляете свойство id.

«Созданные» данные все разделяют один и тот же (несуществующий) id, а базовая коллекция позволяет использовать только один экземпляр той же модели (на основе id). Таким образом, в коллекцию добавляется только первая из созданных моделей.

Что бы вы сделали в реальном приложении Backbone, либо создайте новый userModel с введенными данными и .add(), что и в коллекции, либо просто позвоните .add() в коллекции с необработанными данными.

Для вашей демонстрации вы можете просто сгенерировать свойство id, прежде чем нажимать данные на массив.

Смежные вопросы