2

ここで初心者をエンバーします。ここでは、Ember Web サイトのチュートリアルに従っています。

Mirage を実装してみるまでは、私は単語の例を研究開発しており、すべてが機能しています。データが index.hbs ページに表示されることはありません。

ここに私のモデルフックがあります:

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
    return this.store.findAll('rental');
  },
});

そして私のモデル: Rental.js

import DS from 'ember-data';
export default DS.Model.extend({
  title: DS.attr('string'),
  owner: DS.attr('string'),
  city: DS.attr('string'),
  type: DS.attr('string'),
  image: DS.attr('string'),
  bedrooms: DS.attr('number')
});

私のindex.hbs:

<h1> Welcome to Super Rentals </h1>

We hope you find exactly what you're looking for in a place to stay.

{{#each model as |rentalUnit|}}
  {{rental-listing rental=rentalUnit}}
{{/each}}


{{#link-to "about"}}About{{/link-to}}
{{#link-to "contact"}}Click here to contact us.{{/link-to}}

そして最後に私の app/mirage/config.js:

export default function() {
  this.get('/rentals', function() {
    return {
      data: [{
        type: 'rentals',
        id: 1,
        attributes: {
          title: 'Grand Old Mansion',
          owner: 'Veruca Salt',
          city: 'San Francisco',
          type: 'Estate',
          bedrooms: 15,
          image: 'https://upload.wikimedia.org/wikipedia/commons/c/cb/Crane_estate_(5).jpg'
        }
      }, {
        type: 'rentals',
        id: 2,
        attributes: {
          title: 'Urban Living',
          owner: 'Mike Teavee',
          city: 'Seattle',
          type: 'Condo',
          bedrooms: 1,
          image: 'https://upload.wikimedia.org/wikipedia/commons/0/0e/Alfonso_13_Highrise_Tegucigalpa.jpg'
        }
      }, {
        type: 'rentals',
        id: 3,
        attributes: {
          title: 'Downtown Charm',
          owner: 'Violet Beauregarde',
          city: 'Portland',
          type: 'Apartment',
          bedrooms: 3,
          image: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Wheeldon_Apartment_Building_-_Portland_Oregon.jpg'
        }
      }]
    };
  });
}

Chrome 開発者コンソールに次の 2 つのメッセージが表示されます。

Mirage: Ember アプリは「http://localhost:4200/assets/vendor.js」を取得しようとしましたが、この要求を処理するために定義されたルートがありませんでした。mirage/config.js ファイルで、このパスに一致するルートを定義します。名前空間を追加するのを忘れましたか?

そしてこの警告:

警告: ペイロードで "data" が検出されましたが、モデル名 "datum" のモデルが見つかりませんでした (super-rentals@serializer:-rest:.modelNameFromPayloadKey("data") を使用して解決されたモデル名)

ただし、次のように情報が正常に取得されたようです。

成功したリクエスト: GET /rentals オブジェクト {データ: 配列[3]}

これは適切なデータを反映しています。それとindex.hbsの間のどこかで壊れているだけで、私はそれを理解するのが初心者です。それは私の側の小さな誤解に過ぎないと確信しています。どんな助けでも大歓迎です!

4

1 に答える 1

1

間違ったバージョンの Ember Data がインストールされています。また、依存関係をインストールするときはいつでもサーバーを再起動してください。

表示されるエラー メッセージは、アプリケーションが RESTAdapter (Ember Data 1.x のデフォルト アダプター) を使用していることを意味します。そのため、トップレベルのdataキーを見て、関連するモデルを特異化して見つけようとします。

最新の Ember CLI リリースの手順に従って更新できます。npm install -g ember-cli@betaまたは、ゼロから始めることもできます。

于 2016-02-06T00:06:32.493 に答える