Slide 41
Slide 41 text
Backbone.js
class
@BreweryEditView
extends
Backbone.View
template:
"brewery_edit"
events:
"click
#save-‐button":
"saveClicked"
"keypress
#brewery-‐title":
"titleEdited"
initialize:
-‐>
super
@countriesView
=
new
CountriesView(collection:
@collection)
@$el.html(@countriesView.el)
@model.on
"change",
@render
@model.fetch()
render:
=>
@$("#country-‐outlet").html(@renderTemplate())
return
@
saveClicked:
(e)
=>
e?.preventDefault()
attrs
=
title:
@$("#brewery-‐title").val()
synonyms:
@$("#brewery-‐synonyms").val()
address:
@$("#brewery-‐address").val()
@model.save
attrs,
success:
(model,
response,
options)
=>
App.navigate("/breweries/#{@model.id}",
trigger:
true)
error:
(model,
xhr,
options)
-‐>
errors
=
[]
for
key,
value
of
xhr.responseJSON.errors
errors.push
"#{key}:
#{value.join(",
")}"
alert
errors.join("\n")
titleEdited:
(e)
=>
title
=
@$("#brewery-‐title").val()
@$("h2").text(title)
!
#
further
code
omitted