我的应用程序中的对话框功能使用ember模态对话框插件。现在,对话框中显示的数据是从服务器请求的。所以每次我点击按钮,它都应该请求服务器并显示收到的数据。
馈送.hbs
{{#each feedResult as |feed|}}
<p {{action "toggleModal" feed.fivers_pk }}> {{feed.numFives}} </p>
{{#if isShowingModal}}
{{#modal-dialog close="toggleModal"}}
<p>People who Hi-Fived this</p>
<img src = "images/shape-line-separator.png">
Data from server
{{/modal-dialog}}
{{/if}}
{{/each}
Controller.js(feed.js)
import Ember from 'ember';
import raw from 'ic-ajax';
const { service } = Ember.inject;
export default Ember.Controller.extend({
session:service('session'),
isShowingModal: false,
fivers:[],
feedResult:Ember.computed('model',function() {
SOME MANIPULATION WITH DATA
}),
actions:{
toggleModal: function(fiverpk) {
this.toggleProperty('isShowingModal');
console.log(fiverpk);
raw({
url: "http://example.com/api/photos/"+fiverpk+"/fivers/",
type: 'GET',
});
},
}
});
我能够通过ajax调用向服务器发出请求并接收数据。但我应该在哪里以及如何存储它。这样当它打开时,我就可以在模式对话框中使用它。
您不处理AJAX请求返回的结果。你可以做一些类似下面的事情
raw({
url: "http://example.com/api/photos/"+fiverpk+"/fivers/",
type: 'GET',
}).then(function(result) {
// add the relevant part of the result to the modal
});