Я новичок в Backbone, надеюсь, мне просто не хватает чего-то простого. Я работаю над созданием простого приложения для создания / проведения опросов для работы с вложенными моделями и т. Д. Я использую спокойный сервер Rails для внутренней части.
Однако мне сложно сохранить модели опросов на сервере. Не похоже, что почтовый запрос на самом деле происходит, и, следовательно, он фактически не обновляется. Есть идеи, что мне не хватает?
Модель обзора:
class SurveyMe.Models.Survey extends Backbone.Model
Обзор редактирования обзора:
class SurveyMe.Views.SurveyEdit extends Backbone.View
template: JST['templates/surveys/survey_edit']
initialize: ->
@model.on('all', @render, this)
events: {
'click #back': 'back'
'submit #survey': 'update'
}
render: ->
$(@el).html(@template(survey: @model))
this
back: ->
Backbone.history.navigate("surveys",true)
update: ->
@model.set("title", $('#title').val())
@model.set("survey_limit", $('#survey_limit').val())
@model.save()
Backbone.history.navigate("surveys",true)
Шаблон редактирования опроса:
<h1>Edit Survey</h1>
<form id="survey">
<div class="input-group">
<span class="input-group-addon">Title:</span>
<input id="title" type="text" class="form-control" value="<%= @survey.get('title') %>">
<br>
</div>
<br>
<div class="input-group">
<span class="input-group-addon">Desired Responses:</span>
<input id="survey_limit" type="text" class="form-control" value="<%= @survey.get('survey_limit') %>">
<br>
</div>
<hr>
<button class="btn" id="back">Back</button>
<input type="submit" class="btn" id="update" value="Update">
</form>
РЕДАКТИРОВАТЬ: добавление индекса / маршрутизатора / коллекции
Показатель:
class SurveyMe.Views.SurveysIndex extends Backbone.View
template: JST['templates/surveys/index']
events:
'submit #survey':'createSurvey'
initialize: ->
@collection.on('reset', @render, this)
@collection.on('add', @addSurvey, this)
render: ->
$(@el).html(@template())
@collection.each(@addSurvey)
console.log(@collection.length)
this
addSurvey: (survey) ->
view = new SurveyMe.Views.Survey(model: survey)
@$('#surveys').append(view.render().el)
createSurvey: ->
console.log("Survey created")
Маршрутизатор:
class SurveyMe.Routers.Surveys extends Backbone.Router
routes:
'surveys/:id': 'edit',
'surveys': "index"
initialize: ->
@collection = new SurveyMe.Collections.Surveys()
@collection.fetch(reset: true)
index: ->
view = new SurveyMe.Views.SurveysIndex(collection: @collection)
$("#container").html(view.render().el)
edit: (id) ->
survey = @collection.get(id)
view = new SurveyMe.Views.SurveyEdit(model: survey)
$("#container").html(view.render().el)
Коллекция:
class SurveyMe.Collections.Surveys extends Backbone.Collection
model: SurveyMe.Models.Survey
url: '/surveys/'