我做了一个简单的应用程序,我一次又一次地做了相同的ajax调用(与setInterval),它不是由用户移动到一个路线,而是触发而是通过单击触发setInterval启动的按钮。因此,我并没有通过移入路由触发的model钩子获取数据,因为该钩子只被调用一次,然后模板会自动呈现。相反,我在控制器中有一个jsonRequest函数,它由startInterval函数一遍又一遍地调用。因此,模板中的数据不会像model钩子那样自动呈现。因此,一旦我的数据在每个ajax请求之后返回,我希望将其附加到列表中,或者以某种方式将其添加到index.html,但是我找不到使用Ember的API执行此操作的方法。请求返回后,如何将数据添加到index.html(我不想将它称为view,因为我还没有创建view)?从ajax请求渲染数据不是在模型功能
App.IndexController = Ember.Controller.extend({
jsonRequest: function(){
var datasource = 'http://localhost:8080';
return new Ember.$.ajax({url: App.Index.url, dataType: "json", type: 'GET'}).then(function(data){
console.log(data)
})
},
startInterval: function(){
console.log("startInterval");
App.Index.setIntervalId = setInterval(this.jsonRequest, (1000));
}
App.Index = Ember.Object.extend({
url: "",
setIntervalId: "",
});
App.IndexRoute = Ember.Route.extend({
model: function(){
return App.Index.create();
},
这里有一个jsbin显示,被抛出的错误,当我尝试从Ajax调用的数据添加到索引控制器上的对象属性(由SO用户巴克的建议)。该bin不显示尝试在模板中循环穿过objects,因为我们从未得到过这么远http://emberjs.jsbin.com/bomilowiha/1/edit?html,css,js,console,output
2014-12-23
Leahcim