Skip to content

Instantly share code, notes, and snippets.

@velrest
Last active February 19, 2019 14:36
Show Gist options
  • Save velrest/7265ba6d39b957cd77fb8326c0a04319 to your computer and use it in GitHub Desktop.
Save velrest/7265ba6d39b957cd77fb8326c0a04319 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
updateAnswer(newValue){
if(!this.answer){
this.set('answer', {text: newValue})
}else{
this.set('answer.text', newValue)
}
}
}
});
import Ember from 'ember';
export default Ember.Component.extend({
showSolution: false,
actions: {
save(answer){
this.saveAnswer(answer) //await this
this.fetchSolution(this.question) //await this
this.toggleProperty("showSolution")
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
init(){
const quiz = {}
const questions = [
{name: "test1", type:"multiple-choice", quiz},
{name: "test2", type:"multiple-choice", quiz}
]
quiz.questions = questions
this.setProperties({ quiz })
},
actions:{
saveAnswer(answer){
console.log('save answer', answer)
},
fetchSolution(question){
console.log('fetch solution')
question.solution="solution text"
},
verifyTest(){
console.log('save all answers')
console.log('fetch all solutions')
this.quiz.questions.forEach(q => q.solution = "solution test")
this.toggleProperty('showSolution')
}
}
});
{{#each quiz.questions as |question|}}
<QuizQuestion
@question={{question}}
@saveAnswer={{action "saveAnswer"}}
@fetchSolution={{action "fetchSolution"}}
@showSolution={{showSolution}}
/>
{{/each}}
Test : {{input type="checkbox" checked=quiz.test}}
{{#if quiz.test}}
<button {{action "verifyTest" answer}} >verify</button>
{{/if}}
<input type="text" oninput={{action "updateAnswer" value="target.value"}} />
{{#if showSolution}}
<span style="color: red;">{{@question.solution}}</span>
{{/if}}
{{yield answer}}
{{@question.name}}
{{#component
(concat "quiz-" @question.type)
question=@question
showSolution=showSolution
as |answer|}}
{{#if @question.quiz.test}}
{{yield answer}}
{{else}}
<button {{action "save" answer}} >verify</button>
{{/if}}
{{/component}}
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.4.3",
"ember-template-compiler": "3.4.3",
"ember-testing": "3.4.3"
},
"addons": {
"ember-data": "3.4.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment