2017-07-05 23 views
0

Ember CLIで作業しています。Ember - JSONインポート - テンプレートの内容が表示されない

私はこの形式でJSONを持っています。

公開/資産/ data.json

{ 
    "important": [ 
    { 
     "name": "first", 
     "value": 10 
    }, 
    { 
     "name": "second", 
     "value": 10 
    }, 
    ... 
    ], 
    "unimportant1": { 
    ... 
    }, 
    "unimportant2": { 
    ... 
    } 
    ... 
} 

私は、モデルで使用するために"important"をインポートしたいです。 私は次のことをしようとしています

アプリ/路線/ important.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
    return Ember.$.getJSON("/assets/data.json").important; 
    } 
}); 

コンソールログにエラーが表示されません。

"important"に項目を表示したいとします。 私は次のことをしようとしています

アプリ/テンプレート/ important.hbs

{{#each model as |important|}} 
    <div> 
    {{important.name}}{{important.value}} 
    </div> 
{{/each}} 

しかし、何も表示されません。どうすればそれらを表示させることができますか?

私は予想通り、私はコピーして、return文に配列を貼り付ける場合の項目が表示されていることに気づい:

アプリ/路線/ important.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
    return [ 
     { 
     "name": "first", 
     "value": 10 
     }, 
     { 
     "name": "second", 
     "value": 10 
     }, 
     ... 
    ]; 
    } 
}); 

すべてのヘルプははるかに高く評価されます。

答えて

0

Ember.$.getJSON("/assets/data.json");は約束を返しますが、Ember.$.getJSON("/assets/data.json").important;は約束を返しません。それはちょうどundefinedです。それは好きで、あなたのテンプレートで次に

model() { 
    return Ember.$.getJSON("/assets/data.json"); 
} 

使用:あなたのモデルフックで

は、単に約束を返す

{{#each model.important as |important|}} 
    <div> 
    {{important.name}}{{important.value}} 
    </div> 
{{/each}} 
+1

ありがとうございます!これは完全に機能します。 – Student

関連する問題