Backbone.js 主干中的嵌套视图不显示呈现的HTML
我正在创建一个基础调查应用程序,以便更好地了解主干中的嵌套模型/集合。我正在使用关系主干来帮助解决这个问题 使用一个视图时,我能够循环浏览调查并显示问题/答案。但是,当我试图将它们转换为单独的问答视图时,我很难让它们显示出来 知道为什么questionView没有填充问题html吗?一如既往,我们非常感谢您的帮助 调查显示:Backbone.js 主干中的嵌套视图不显示呈现的HTML,backbone.js,coffeescript,Backbone.js,Coffeescript,我正在创建一个基础调查应用程序,以便更好地了解主干中的嵌套模型/集合。我正在使用关系主干来帮助解决这个问题 使用一个视图时,我能够循环浏览调查并显示问题/答案。但是,当我试图将它们转换为单独的问答视图时,我很难让它们显示出来 知道为什么questionView没有填充问题html吗?一如既往,我们非常感谢您的帮助 调查显示: class SurveyMe.Views.SurveyShow extends Backbone.View template: JST['templates/surv
class SurveyMe.Views.SurveyShow extends Backbone.View
template: JST['templates/surveys/survey_show']
initialize: ->
@model.on('all', @render, this)
@questionNumber = 0
@questionLimit = @model.get("questions").length - 1
render: ->
$(@el).html(@template(survey: @model, questionNumber: @questionNumber))
@renderQuestion()
this
back: ->
if @questionNumber <= @questionLimit and @questionNumber > 0
@questionNumber -= 1
$("#container").html(@render().el)
else
Backbone.history.navigate("surveys",trigger: true)
events:
'click #answer': 'updateQuestion'
'click #back': 'back'
updateQuestion: ->
if @questionNumber < @questionLimit
@questionNumber += 1
$("#container").html(@render().el)
choice = new SurveyMe.Models.Choice
choice.save(
choice:
appuser_id: Cookie.get('survey_user_id')
question_id: @model.get('questions')[@questionNumber]["id"]
answer_id: "4"
)
@renderQuestion()
else
completion = new SurveyMe.Models.Completion
completion.save(
completion:
survey_id: @model.get('id')
appuser_id: Cookie.get('survey_user_id')
)
Backbone.history.navigate("surveys",trigger: true)
renderQuestion: ->
question = new SurveyMe.Models.Question(id: @model.get("questions")[@questionNumber]["id"])
questionView = new SurveyMe.Views.Question(model: question)
$('#questions').html(questionView.render().el)
survey_show.jst.eco注释文本用于在没有单独问题/答案视图的情况下显示问题/答案
<h2 class="text-center"><%= @survey.get('title') %></h2>
<div class="row">
<div class="3">
<ul id="questions" class="list-group">
<!--
<li id="question" class="list-group-item text-center">
<%= @survey.get("questions")[@questionNumber]["title"] %>
<ul id="answers" class="list-group">
<% for answer, j in @survey.get("questions")[@questionNumber]["answers"]: %>
<li id="answer" class="list-group-item">
<%= @survey.get("questions")[@questionNumber]["answers"][j]["title"] %>
</li>
<% end %>
</ul>
</li>
-->
</ul>
</div>
</div>
<button class="btn" id="back">Back</button>
问题模式:
class SurveyMe.Models.Question extends Backbone.RelationalModel
urlRoot: '/surveys'
relations = [{
type: Backbone.HasMany,
key: 'answers',
relatedModel: 'SurveyMe.Models.Answer'
reverseRelation: {
key: 'question',
includeInJSON: 'id'
}
}]
答案模式:
class SurveyMe.Models.Answer extends Backbone.RelationalModel
urlRoot: '/answers'
class SurveyMe.Models.Survey extends Backbone.RelationalModel
defaults:
title: 'Enter survey name'
survey_limit: 1000
number_taken: 0
long: false
survey_finished: false
urlRoot: '/surveys'
relations = [{
type: Backbone.HasMany,
key: 'questions',
relatedModel: 'SurveyMe.Models.Question'
reverseRelation: {
key: 'survey',
includeInJSON: 'id'
}
}]
class SurveyMe.Models.Question extends Backbone.RelationalModel
urlRoot: '/surveys'
relations = [{
type: Backbone.HasMany,
key: 'answers',
relatedModel: 'SurveyMe.Models.Answer'
reverseRelation: {
key: 'question',
includeInJSON: 'id'
}
}]
class SurveyMe.Models.Answer extends Backbone.RelationalModel
urlRoot: '/answers'