これが私のコントローラー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
私が理解していることから、モデルのプロパティを監視しているため、コントローラーのメソッドがモデル内のメソッドの前に呼び出されるのはなぜですか?