Với Bộ sưu tập Backbone nàyXương sống: Cách xác thực xem Mô hình đã tồn tại trong Bộ sưu tập chưa?
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')
)
và thêm một mô hình mới từ một cái nhìn cách dưới đây, làm thế nào tôi có thể xác nhận nếu mô hình đã tồn tại trong bộ sưu tập?
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 })
Bộ sưu tập không cho phép bạn làm điều đó :) nó ném một lỗi (Trong mọi trường hợp chỉ có một biến thể nhỏ trong các mô hình của bạn và bạn muốn xác thực nó, liên kết với sự kiện 'add' và xác nhận lại ở đó) – Deeptechtons
Tôi không thể nhận ra cách xác thực nó theo cách bạn nói. Tôi sẽ làm điều đó phía máy chủ. Cảm ơn Deeptechtons. – Aldo
tôi sẽ quay trở lại với một ví dụ :) để nó sẽ giải quyết vấn đề – Deeptechtons