0

私はEmberアプリを開発しています。localhost の同じサーバーから API と ember アプリを提供しています。

私の API は Ember 仕様に準拠していると確信しています (ただし、矛盾する情報がここここに記載されているため、よくわかりません。2 番目のサイトは、このEmber ブログ投稿からリンクされており、Ember の規則を形式化したものであると想定されています)。 . 私の API は 2 番目のリンクのスタイルに従っているためhost/api/users/1、たとえば をリクエストすると次のように返されます。

{
  "users": [{
      "username": "jojo"
      etc..
  }]
}

でテストできるので、API が機能していることはわかっていますcurl。私の問題は、Ember データがリクエストを行っていないように見えることです。Chrome 開発者ツールの [ネットワーク] タブには、実行時にデータをロードするリクエストが送信されていないことが示されていますApp.User.find()。しかし、私はこれを取り戻します:ここに画像の説明を入力

ストアを定義する coffeescript コードは次のとおりです。

App.Store = DS.Store.extend
  revision: 13
  url: 'http://localhost:9292/'
  adapter: DS.RESTAdapter

DS.RESTAdapter.reopen
  namespace: 'api'

ここで、「ユーザー」のモデル、コントローラー、およびルートを定義します。

App.UsersRoute = Ember.Route.extend
  model: ->
    App.User.find()

App.UsersController = Ember.ArrayController.extend()

App.User = DS.Model.extend
  username: DS.attr 'string'
  url: DS.attr 'string'
  projects: DS.hasMany 'App.Project'
  query_instances: DS.hasMany 'App.QueryInstance'

ここで重要な何かが欠けていますか?私は Ember とクライアント側の開発全般に不慣れです。おそらくここには明らかな解決策がありますが、私はそれらを認識していません。Ember の一般的なデバッグに関するヒントを教えていただければ幸いです。

4

2 に答える 2

1

Ember と Ember データの最新バージョンにアップグレードすることで、この問題を解決できました。互換性のないバージョンを使用していたと思います。最初にYeoman ember generatorを使用してプロジェクトを生成しました。このジェネレーターが実際に互換性のないバージョンを提供するとは思えないので、何が問題なのかよくわかりません。それはあったかもしれません:

  • 私のバウワーキャッシュの問題
  • revision宣言の番号の誤った記述DS.Store。これを含める必要があるかどうかが不明確だったため、変更した可能性があります。最新バージョンでは必要ありませんが、それは Yeoman ジェネレーターが提供していたものではありません。そのため、削除してから間違ったバージョン番号で追加し直した可能性があります。

いずれにせよ、同様の問題を抱えている他の人には、Ember と Ember Data のバージョンをアップグレードし、互換性があることを確認することをお勧めします。

于 2013-06-12T15:55:05.810 に答える