这是我的控制器EventTimezoneController
。它的content
属性设置为Event
模型。
App.ChallengeTimezoneController = Ember.ObjectController.extend
timezones: [{value: "", label: ""}, {...}]
timezoneDidChange: (->
console.log "In controller", @get("timezone")
).observes("timezone") # I also tried "content.timezone"
现在我的Event
模型:
App.Event = App.Challenge = DS.Model.extend(Ember.Validations,
timezone: DS.attr('string')
timezoneDidChange: (->
console.log "In model", @get("timezone")
).observes("timezone")
)
然后,我有一个TimezoneSelect
看法
App.TimezoneSelect = Ember.Select.extend
valueBinding: "controller.timezone"
contentBinding: "controller.timezones"
optionValuePath: "content.value",
optionLabelPath: "content.label"
现在问题来了:当我在选择下拉列表中选择一个新值时,日志显示:
> In controller American Samoa
> In model American Samoa
为什么timezoneDidChange
控制器的方法在模型中的方法之前调用,因为据我了解,它正在观察模型的属性?