Search code examples
javascriptember.jsobservers

Observer not notified when setting property to undefined


I have a mixin that observes properties on an object.

observedProperties: [
    'event.name'
    'event.start_time'
    'event.end_time'
    'event.slot_index'
    'event.recurrence'
    'event.rank'
  ]
setupObservers: ->
    @current = {}
    @observedProperties.forEach (p) =>
      # Initialize the value cache
      @current[p] = @get(p)
      @addObserver p, @, @debouncer

My object looks something like obj = {event: {recurrence:{...}, ...}}

In my controller I have a clearRecurrence method:

clearRecurrence: ->
    event = @get('event')
    event.set 'reccurence', undefined
    @set 'event', event
    # @set 'event.recurrence', undefined

The method gets invoked, but the callback for the observer (debouncer method) is not called.

Any ideas what I am doing wrong ?


Solution

  • You have reccurence spelled differently/incorrectly in your setter. Also you don't need to re-set event.