1
我正在嘗試使用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')
解決問題。它也可以與綁定?有一個更好的方法嗎 ?
如何將ObjectController與Object之間的關聯? ArrayController你可以pushObject ..你如何更新ObjectController的內容,所以任何綁定將更新? –
Euh,contentBinding:'App.Location.geocoded'和App.Location.set('geocoded',Ember.Object.create({response:response}));應該工作:s –