Biorąc pod uwagę ten Backbone CollectionSzkielet: Jak sprawdzić, czy model już istnieje w kolekcji?
define [
'underscore',
'backbone',
'cs!models/floor'
], (_, Backbone, Floor) ->
return Backbone.Collection.extend
model: Floor
url: ->
return '/api/hotels/' + @hotelId + '/floors'
initialize: (models, options) ->
if (options.hotelId)
@hotelId = options.hotelId
@.fetch()
parse: (response) ->
response.floors
alreadyExist: ->
@.filter((floor) ->
return floor.get('number') == @.attrs.get('number')
)
i dodanie nowego modelu z myślą droga poniżej, w jaki sposób mogę potwierdzić, czy model już istnieje w kolekcji?
add_floor: (e) ->
console.log ' Saving Floor '
e.preventDefault()
floorNumber = $('input[name=floorNumber]').val()
floorDescription = $('input[name=floorDescription]').val()
return new NoticeView({ message: "Please enter a Floor Number.", displayLength: 10000 }) unless floorNumber
if ! @collection.add({ number: floorNumber}).alreadyExist()
@collection.create({ number: floorNumber, description: floorDescription }, {
error: (model, response) ->
# $(e.target).removeClass('waiting');
new ErrorView({ message: "Problem saving Floor " + response.responseText, displayLength: 10000 })
success : (model, response) ->
console.log model
console.log response
new NoticeView({ message: "Floor successfully saved.", displayLength: 10000 })
})
else
new ErrorView({ message: "Floor already exist." + response.responseText, displayLength: 10000 })
Collection nie pozwalają to zrobić :) zgłasza błąd (W każdym razie istnieje tylko niewielka zmienność Twoje modele i chcesz je zweryfikować, powiązać z zdarzeniem 'add' i tam potwierdzić) – Deeptechtons
Nie mogę sobie poradzić jak potwierdzić to tak, jak mówisz. Zrobię to po stronie serwera. Dzięki Deeptechtons. – Aldo
Wrócę z przykładem :), aby rozwiązać problem. – Deeptechtons