我做了一個簡單的應用程序,我一次又一次地做了相同的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
這裏的問題是,我沒有積累對象,然後一次渲染它們(比如,通過迭代對象循環)。相反,一旦每個對象都返回,我希望渲染它,然後對下一個對象執行相同操作,所以使模型數組看起來不正確。我誤解了你的答案嗎?或者你能建議一些不同的東西? – Leahcim
也許更重要的是,當我移動到App.IndexRoute = Ember.Route.extend({model:function(){返回App.Index.create(); })路線時,我已經創建了模型。 '並且該模型不是數組,而是您在OP底部看到的App.Index – Leahcim
如果向數組添加新對象,它將自動呈現。模型是否具有任何功能?您在該模型的帖子中放置的代碼似乎沒有任何作用 –