シンプルな Ember.js アプリがあります。があり、application view
そのビューの中に がありresults view
ます。
私は ember-model を使用して、サーバーから JSON をフェッチしています。
Map.Winery = Ember.Model.extend({
name: Ember.attr(),
address: Ember.attr(),
address_2: Ember.attr(),
city: Ember.attr(),
stateprovince: Ember.attr(),
country: Ember.attr(),
latitude: Ember.attr(),
longitude: Ember.attr(),
full_address: function () {
return this.get('address') + ' ' + this.get('city') + ' ' + this.get('stateprovince') + ' ' + this.get('country');
}.observes('address', 'city', 'stateprovince', 'country')
});
Map.Winery.adapter = Ember.Adapter.create({
findAll: function(klass, records) {
return Ember.$.getJSON('/api/wineries').then(function(response) {
if (response.success) {
records.load(klass, response.data);
}
});
}
});
人々が何が起こっているのかを公平に見ることができるように、できるだけシンプルにしました。
基本的に、アプリケーション ビューにボタンがあり、クリックするたびに Map.Winery.findAll(); を呼び出すアクションを呼び出します。(サーバーからデータをリロードします)。
私が望むのは、レコードに新しいデータがロードされるたびにresults view
、新しい結果で更新する必要があるということです。
アプリケーション.hbs
<button class="locate" {{action "reload" on="click"}}>Reload</button>
{{view Map.ResultsView}}
application_controller.js
Map.ApplicationController = Ember.ObjectController.extend({
actions: {
reload: function() {
var results = Map.Winery.findAll();
}
}
});
結果.hbs
<div class="results">
{{#each results}}
<p>{{this}}</p>
{{/each}}
</div>
results_view.js
Map.ResultsView = Ember.View.extend({
templateName: 'results',
didInsertElement: function(e) {
}
});
ここでの質問は次のとおりです。サーバーからレコードに新しいデータがロードされるたびに、結果ビューが更新されるようにするにはどうすればよいですか?
できるだけ多くの関連コードを挿入してみました。ご不明な点がございましたらお気軽にお問い合わせください。
ありがとう