将 属性 设置为未定义时未通知观察者

Observer not notified when setting property to undefined

我有一个 mixin 可以观察对象的属性。

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

我的对象看起来像 obj = {event: {recurrence:{...}, ...}}

在我的控制器中,我有一个 clearRecurrence 方法:

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

方法被调用,但观察者的回调(去抖动方法)没有被调用。

知道我做错了什么吗?

reccurence 在 setter 中拼写了 differently/incorrectly。而且你不需要重新设置事件。