Google マップ JSON API を使用してジオコーディングを実装しようとしています。
場所のモデルを作成し、ObjectController モデルには非同期ジオコーディング ロジックが含まれています。
コントローラーがモデルへの変更を監視して、最新のデータを反映するようにします。
私はバインディングとオブザーブの両方を試していますが、両方とも機能しません:
App.Location = Ember.Object.extend({
formatted_address: null,
location: {
lat: null,
lng: null
}
})
App.Location.reopenClass({
geocoded: Ember.Object.create(),
geocode: function(address) {
$.ajax({
url: 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=' + address,
dataType: 'json',
context: this,
success: function(response) {
App.Location.geocoded.set('response', response);
}
});
return this.geocoded;
}
});
App.LocationController = Ember.ObjectController.extend({
contentBinding: 'App.Location.geocoded',
testProperty: function() {
console.log('test');
}.property('content'),
testObserve: function() {
console.log('test');
}.observes('App.Location.geocoded')
});
observes('App.Location.geocoded.response')
編集:問題を修正するために変更します。バインディングでも機能しますか?これを行うより良い方法はありますか?