2017-03-24 55 views

回答

1

模型上的關係返回PromiseArray,其解析爲RecordArray。在RecordArray上,您可以查詢isLoaded。但是,您無法訪問此屬性,因爲PromiseArray未將此代理代理到底層RecordArray。然而PromiseArray實施了PromiseProxyMixin,其具有isPendingisSettled可用。

結賬this twiddle爲工作解決方案。

基本上,這是工作代碼:

{{#each model.posts}} 

{{else}} 
    {{#if model.posts.isPending}} 
    <div>lade...</div> 
    {{else}} 
    <div>nix da :(</div> 
    {{/if}} 
{{/each}} 
+0

我喜歡這個,但我看到:'isLoaded'和'isLoading'。爲什麼?我應該使用computedProperty?每次?如果我使用{{log}},這是我在頁面中得到的:'''model.posts.isLoaded = undefined,model.posts.isLoading = undefined,model.posts.content.isLoaded = false,model.posts .content.isLoading = undefined,model.posts.content.isLoaded = true'''如何做? 怎麼辦? –

+0

它的'isLoaded',對不起,'isLoading'在'模型'本身並且在這裏不相關。輸出是有道理的。 'isLoaded'是虛假的,直到返回日期,它變成'true'。所以,如果你在'each'的'else'部分,並且'isLoaded'是'true',那麼你就沒有數據。 – Lux

+0

尊敬的@Lux,這是行不通的。 model.posts.isLoaded始終未定義。因此,即使沒有記錄,我也會在加載時出現困難。如何? –

0

這兩個選項來我的腦海:

  1. 使用燼-承諾-幫手,很容易直接在你的模板中使用:https://github.com/fivetanley/ember-promise-helpers

  2. 如前所述,如果您正在使用RecordArray,請檢查isLoaded屬性。

+0

你能寫一個第二個例子嗎? –

+0

勒克斯的答案有一個完整的例子 –

+0

勒克斯的答案不工作...請檢查它。 –