2017-04-04 1 views
0

私は、状態のすべての郡を返すエンドポイントを持つAPI(ASP.Net Web APIで書いています)を持っています。EmberJSが動的ルートセグメントをAPIに渡さない

私のルートは、次のようになります。http://localhost:4200/counties/CAまたはhttp://localhost:4200/counties/NY

私のAPIが正常に動作しています。

しかし、私は取得しています:Error while processing route: counties Ember Data Request GET http://localhost:50523/api/counties returned a 404

私のルータのマッピングは次のとおりです。

// router.js 
Router.map(function() { 
    this.route('states'); 
    this.route('counties', {path : 'counties/:state'}); 
}); 

私も'counties/:fips'を試してみました - FIPSは、シリアライザに指定された主キーです。そして、その地獄のための'counties/:county_id''counties/:state_id'

// routes/counties.js is: 
export default Ember.Route.extend({ 
    model(params) { 
    return this.store.query('county', {state: params.state}); 
    } 
}); 

// models/county.js: 
export default DS.Model.extend({ 
    state: DS.attr('string'), 
    countyName: DS.attr('string'), 
    fips: DS.attr('string'), 
}); 

stateルートとAPIはちょうどダンディーであることに注意してください。

編集:コメント@LUXに基づいて、ルートをテストする前に物事をもう少し詳しく調べる必要があることに気付きました。だから、私は状態がそうのように記載されている各状態のリンクを含めるためのテンプレート変更:

// templates/companies 
{{#each model as |state|}} 
<p>{{#link-to "counties" state.state}}{{state.state}} - {{state.stateName}}/link-to}}</p> 
{{/each}} 

私も私のモデルフックを固定(上記参照)

今私はのステータスバーの右のURLを取得しますブラウザをリンク上に置くとブラウザが表示されますが、まったく同じエラーが表示されます。私が調べている2つの他のサンプルプロジェクトと比較して、すべてのコードをもう一度調べましたが、私は問題を見ていません。

編集:ここでは

は私のアダプタです:

// adapters/application.js 
import WebApiAdapter from 'ember-web-api/adapters/web-api'; 
import config from '../config/environment'; 

export default WebApiAdapter.extend({ 
    host: config.host, 
    namespace: 'api' 
}); 

答えて

0

それはなぜでしょうか?ルータはEmberルートのためのもので、ブラウザのURLもそうです。 APIのURLではありません。 は、動的セグメントは、あなたのmodelフックに渡されます。

model(params) { 
    console.log(params.state); 
} 

またfindAllは、指定された型のすべてレコードをフェッチすることです。だから、queryを使用する必要があります。

model(params) { 
    return this.store.query('county', { state: params.state }); 
} 

今、あなたは、アダプタに状態を用意して、あなたは適切な要求を行うことができます。

+0

それは、私が近くに感謝しました。私はまだ何かが欠けている。編集を参照してください。 –

+0

アダプタから適切なURLを返す必要があります。あなたのアダプターは何ですか? – Lux

+0

私の質問に私のアダプタコードを追加しました。デフォルトのアプリケーションとは別のアダプタが必要ですか?状態のルートは正常に動作しているので、私はアダプタがすべて良いと仮定します。 –

関連する問題