vendredi 8 mai 2015

#ember observer to computed.alias

Hey I completed a working model of drop downs that depend on each other for their drop down list. I would like to convert them to use computed.alias instead of observers. I'm a bit confused on how to go about doing that type of relation.

classPeriods: []
classPeriod: null
detailedClassInfo: null
students: []
teacher: null
teachers: []
classSubject: null
classSubjects: [
                  { label: I18n.t('assignments.new.class_subjects.math'), value: 'math' },
                  { label: I18n.t('assignments.new.class_subjects.english'), value: 'english' },
                  { label: I18n.t('assignments.new.class_subjects.gym'), value: 'gym' },
                  { label: I18n.t('assignments.new.class_subjects.music'), value: 'music' }
               ]

subjectChanged: ( ->
  return unless @get('classSubject')
  @set('teacher', null)
  @resetClassValues()
  classSubject = @get('classSubject')
  staff = @store.find('teachers', subject: classSubject  )
  @set('teachers', staff)
).observes 'classSubject'

teacherChanged: ( ->
  return unless @get('teacher')
  @resetClassValues()
  @get('teacher.details').then (detailedClassInfo) =>
    @set('detailedClassInfo', detailedClassInfo)
    @set('classPeriods', detailedClassInfo.get('classPeriods'))
).observes 'teacher'

classPeriodChanged: ( ->
  return unless @get('classPeriod')
  @set('students', @get('classPeriod.students').map (student) ->
    App.AssignmentsNewPeriodDetails.create
      student: student
  )
  @store.find('assignments')
).observes 'classPeriod'

resetClassValues: ->
  @set('detailedClassInfo', null)
  @set('classPeriod', null)
  @set('classPeriods', Ember.A())
  @set('students', Ember.A())




Aucun commentaire:

Enregistrer un commentaire