Guest User

Untitled

a guest
Oct 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. ##class Nfproto.Controllers.PostsController extends Backbone.Controller
  2. routes:
  3. "posts/:id": "edit"
  4. "": "index"
  5. new: "newDoc"
  6.  
  7. edit: (id) ->
  8. post = new Post(id: id)
  9. post.fetch
  10. success: (model, resp) ->
  11. new Nfproto.Views.Posts.EditView(model: post)
  12.  
  13. error: ()->
  14. new Error(message: "Could not find that post.")
  15. window.location.hash = "#"
  16.  
  17. index:() ->
  18. $.getJSON "/posts", (data) ->
  19. if data
  20. posts = _(data).map((i) ->
  21. new Nfproto.Models.Post(i)
  22. )
  23. new Nfproto.Views.Posts.IndexView(posts: posts)
  24. else
  25. new Error(message: "Error loading posts.")
  26.  
  27. newDoc: ->
  28. new Nfproto.Views.Posts.EditView(model: new Nfproto.Models.Post())
  29.  
  30.  
  31.  
  32.  
  33. ## class Nfproto.Views.Posts.EditView extends Backbone.View
  34. events: "submit form": "save"
  35. initialize:() ->
  36. @render()
  37.  
  38. save:() ->
  39. self = this
  40. msg = (if @model.isNew() then "Successfully created!" else "Saved!")
  41. @model.save
  42. title: @$("[name=title]").val()
  43. content: @$("[name=content]").val()
  44. ,
  45. success: (model, resp) ->
  46. self.model = model
  47. self.render()
  48. self.delegateEvents()
  49. Backbone.history.saveLocation "posts/" + model.id
  50.  
  51.  
  52.  
  53.  
  54. false
  55.  
  56. render:() ->
  57. out = "<form>"
  58. out += "<label for='title'>Title</label>"
  59. out += "<input name='title' type='text' />"
  60. out += "<label for='content'>content</label>"
  61. out += "<textarea name='content'>" + (@model.escape("content") or "") + "</textarea>"
  62. submitText = (if @model.isNew() then "Create" else "Save")
  63. out += "<button>" + submitText + "</button>"
  64. out += "</form>"
  65. $(@el).html out
  66. $("#app").html @el
  67. @$("[name=title]").val @model.get("title")
  68.  
  69.  
  70. ## When going to the newDoc edit view
  71. error: func is undefined
  72. at:
  73. _.bind = function(func, obj) {
  74. if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
Add Comment
Please, Sign In to add comment