저는 Rails에서 백본을 사용 중이며 새 모델을 서버에 저장하려고합니다. 그러나 모델에 .save()
을 호출해도 아무 것도하지 않는 것 같습니다. Chrome의 '네트워크'탭을 보면 어떤 요청도 표시되지 않습니다. 여기에 내 코드입니다 :백본 모델 save() 메소드가 아무 것도하지 않습니다.
모델
class MyApp.Models.Chain extends Backbone.Model
defaults:
steps: []
id: null
urlRoot: '/chains'
validate: (attrs) ->
if $.trim(attrs.steps[@step_number - 1]) == ''
return "Step can't be blank."
보기
class MyApp.Views.ChainsNew extends Backbone.View
# @template is defined by a conditional inside render()
initialize: ->
@is_saving = false
events:
'click #btn-go': 'add_step'
'click #btn-done': 'save'
render: (step_number) ->
@model.step_number = step_number
@template = if @model.step_number is 1 then JST['chains/new'] else JST['chains/step']
$(@el).html(@template({previous_step_text: @model.get('steps')[step_number - 2]}))
@
add_step: ->
#divide array into arrays of steps before and after step being edited
steps = @model.get('steps')
array1 = steps.slice(0, @step_number - 1)
array2 = steps.slice(@step_number)
array1.push(@$el.find('textarea').val())
newArray = array2.concat(array1)
if [email protected]({steps: newArray}, {validate: true})
alert(@model.validationError)
false
else
true #need to a return a value for the `save` method
save: ->
@is_saving = true
if @add_step
@model.save(null, {
success: ->
console.log(arguments)
error: ->
console.log(arguments)
})
내가 콘솔에 바로 전에 메시지를 기록했기 때문에 나는 @model.save
가 호출되고 있음을 알고 (기타의 단어 if @add_step
이 참).
아마도 'url' 매개 변수를'urlRoot'의 맨 위에있는 모델에 추가해야할까요? – aledalgrande
@aledalgrande - 방금 주사위를 굴려 보았습니다. – maxedison