2013-07-11 72 views
1

我想向服務器發出請求,以基於用戶點擊的內容(近期,趨勢等)獲取一堆新聞文章。我希望能夠首先加載頁面,並顯示加載欄,同時等待API的響應。我有什麼,雖然它工作並返回我需要的JSON數據,但會在加載任何內容之前等待響應從服務器返回。這是迄今爲止所有的:推遲搜索,直到模板加載

我想要實現的是:加載一個空對象的數組,然後增量API的調用文章(讓我們說從這個小時抓住所有的文章,然後最後一個小時,然後小時,等等),每當我回顧文章填充視圖(我假設我可以只是注入他們到一個控制器不知何故),但我迷失在Emberisms如何添加到該數組的物體。我認爲我需要製作一個ArrayController,然後在所述數組中創建一個模型,然後調用一個函數添加到它,但正如我所說,我失去了如何將項目添加到該控制器上飛行

App = Ember.Application.create(); 

App.Router.map(function() { 
    this.resource('today'); 
}); 

App.TodayRoute = Ember.Route.extend({ 
    model: function() { 
     return $.getJSON('/today'); 
    } 
}); 
App = Ember.Application.create(); 

App.Router.map(function() { 
    this.resource('today'); 
}); 

App.TodayRoute = Ember.Route.extend({ 
    model: function() { 
     return $.getJSON('/today'); 
    } 
}); 

爲了闡述我的問題的推理 - 我很困惑如何用燼來解決這個問題。我很熟悉如何使用jquery做這樣的事情,但是我正在嘗試學習這個框架,並且最初知道兩者之間的分工是什麼。我知道實際的AJAX請求應該是jQuery,但我想盡可能在​​Ember中做。但是,如果這是jquery應該完成的事情,那麼這也很好!

+0

你問題稍寬,稍微剖析一下問題。 1.你能展示你的後端返回的JSON格式如何嗎?看到JSON格式後可能會出現另一個問題:2.您是否能夠在必要時更改API返回數據的方式?還有一個3.你使用燼數據? – intuitivepixel

+0

@intuitivepixel我要返回的JSON是一個對象數組,每個對象都有一個網站,一個標題和一篇文章。這是通過紐約時報api很不幸,不,我不能改變它,儘管如果我能用紅寶石處理它。目前我沒有使用ember-data - 沒有任何理由,除了我沒有找到明確的理由來使用它(這是一個包含它的解決方案)。我不知道你是否閱讀了我最近的更新,但我感覺好像我在這方面描述了這個問題 - 如果不讓我知道我還有什麼要離開。 – cadlac

+0

對不起,因爲我是新來的燼,我不知道什麼信息太多,太少,或適當 – cadlac

回答

0

我找到了解決辦法 - 和喜歡一切與Ember,這是非常簡單的。我使用了一些空白的夾具數據,然後如下定義我的控制器。

App.ArticleRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Article.find(); 
    } 
}) 

然後在頁面加載我調用一個方法重點圍繞

App.Article.createRecord({ 
    // Attributes, pulling from the returned JSON 
}) 

簡單! :)

0

getJSON方法看起來有一個成功,你可以使用的回調函數,這樣的事情可能嗎?

App.TodayRoute = Ember.Route.extend({ 
    model: function() { 
     $.getJSON('/today', function(data) { 
      // hide loading here 
     /data is the JSON returned 
     }); 
    } 
}); 

退房此鏈接http://api.jquery.com/jQuery.getJSON/

+0

雖然這將工作,似乎我通過與純jQuery實現它避免燼。此外,我認爲有一個更好的解決方案,而不僅僅是將它作爲Ember模型,但我不確定這可能是什麼。 – cadlac