В коллекции Backbone удалите модель по ссылке на себя - PullRequest
0 голосов
/ 07 декабря 2011

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

И мой HTML:

<div id="addMovie">
  <input id="movieName" type="text" value="Movie Name">
  <input id="movieDesc" type="text" value="Movie Description">
  <button id="add-movie">Add Movie</button>
</div>

<div id="lasMovies">
 <ul id="movies-list"></ul>
</div>

1 Ответ

1 голос
/ 07 декабря 2011

В этом коде есть несколько вещей, которые не будут работать. Ваша главная проблема в том, что вы не указываете своей коллекции, какую модель удалить. Таким образом, в вашем html вы должны назначить такой уникальный идентификатор, который позже будет идентифицировать вашу модель.

// set cid as el id its unique in your collection and automatically generated by collection
addPeliculaLi: function (model) {
  $("#movies-list").append("<li id="+ model.cid +"> <a href="+ model.get('link')+">" + 
    model.get('name') + "</a> <a class='eliminar' href='#'>Eliminar</a> </li>"
  );
},

// fetch and delete the model by cid, the callback contains the jQuery delete event
delPelicula: function (event) {
  var modelId = this.$(event.currentTarget).attr('id');
  var model = this.peliculas.getByCid(modelId);
  this.peliculas.remove(model);
  // now the remove event should fire
},

// remove the li el fetched by id
delPeliculaLi: function (model) {
  this.$('#' + model.cid).remove();
}

Если нет других ошибок, которые я пропустил, ваш код должен работать. Это просто быстрое решение. Может быть, вам стоит взглянуть на пример задач Backbone, чтобы получить некоторые примеры того, как структурировать ваше приложение.

http://documentcloud.github.com/backbone/examples/todos/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...