2012-11-24 4 views
2

Backbone 및 Parse를 사용하여 설문 조사 웹 사이트를 만드는 방법을 배우고 있습니다. Stack Overflow에서 비슷한 질문을 보았습니다. 그러나 내 질문은 조금 다릅니다. 이 웹 사이트에서는 사용자가 직접 설문 조사를 할 수 있습니다. 지금 사용자가 게시 할 수있는 질문에는 두 가지 유형이 있다고 가정 해 보겠습니다. 여러 선택 사항과 무료 응답입니다. 나는 Question이라는 백본 모델을 다음과 같이 만들었다. // 질문 모델백본 : 하나의 모델 2보기?

//---------------------- 
var Question = Parse.Object.extend(
"Question", { 
//Default attributes for the todo 
defaults: { 
    content: "What's your name", 
    type: "free_response", 
    choices: [] 
}, 
initialize: function() { 
     if (!this.get("content")) { 
       this.set({"content": this.defaults.content}); 
    } 
     if (!this.get("type")) { 
       this.set({"type": this.defaults.type}); 
    } 
     if (!this.get("choices")) { 
       this.set({"choices": this.defaults.choices}); 
    } 
} 

}); 

그래서 나는 또한 질문을 표시 할 수 있습니다 QuestionView을 만들려고합니다. 그러나 여러 선택과 자유 응답을 다르게 표시해야합니다. 질문을 유형별로 다르게 표시하는 가장 좋은 방법은 무엇입니까? 감사합니다. . 당신의 questionView 템플릿에서

+1

왜 수동으로 기본값을 적용? 'defaults'에서 배열을 사용하면 문제가 발생할 수 있습니다. 가변 값을 포함 시키려면'defaults' 함수를 사용해야합니다. –

+0

예, 배열에 문제가있었습니다. 예상 한대로하지 않는 것 같습니다. 배열에 항목을 추가 할 수있었습니다. 기본값으로 함수를 사용하면 무엇을 의미합니까? – user1849043

+0

개체 대신'defaults : function() {return {...}}'대신 ['defaults'] (http://backbonejs.org/#Model-defaults)에 대한 함수를 사용할 수 있습니다. 그러면 각 모델에 대한 고유 한 기본값 세트가 제공됩니다. –

답변

0

if 문 추가 : 밑줄 템플릿을 사용하는 방법에 대한 자세한 내용은

<script type="template/underscore" id="QuestionView"> 
<%- content %> 
<% if (type === 'free_response') { %> 
<textarea name="answer<%- id %>"></textarea> 
<% } else { _(choices).each(function (choice) { %> 
<input type="radio" name="answer<%- id %>" value="<%- choice %>"> <%- choice %> 
<% });} %> 
</script> 

은 다음을 참조하십시오 http://documentcloud.github.com/underscore/#template

+0

고마워요 !!! 귀하의 조언은 매우 도움이되었습니다! – user1849043

+0

죄송합니다.이 줄에 대해 더 자세히 설명해주십시오. ? 감사! – user1849043

+0

나는 어떤 이름이 "대답 <%- id %>"인지는 모르겠다. 나중에 사용자 응답을 검색합니까? – user1849043