特定のEDモデルの「ストア名」(適切な用語がわからない場合)はどのようにして確認できますか?私がApp.Payment
を持っていると言うと、その対応する名前、つまりpayment
(例えば、find
クエリで使用する)を検索するストアメソッドがありますか?あなたがエンバーの文字列dasherize方法を探しているかもしれないEmberデータモデルのストア名の取得方法
答えて
エンバーデータ1.0 (およびそれ以降)
modelName
はdasherized文字列です。これは、クラスのプロパティとして保存され、あなたがモデルのインスタンスを持っている場合:エンバーデータ前1.0
typeKey
については
var model = SuperUser.create();
console.log(model.constructor.modelName); // 'super-user'
は、モデルの文字列名です。モデルのクラスプロパティとして保存されます。
var model = App.Name.create({});
console.log(model.constructor.typeKey); // 'name'
:
var fullClassName = "App.SomeKindOfPayment";
var className = fullClassName.replace(/.*\./, ""); // => "SomeKindOfPayment"
var dasherizedName = Ember.String.dasherize(className); // "some-kind-of-payment"
ありエンバーでこれを行うには、組み込みの方法かもしれないが、私は見ているいくつかの時間を過ごした後、それを発見していません。
EDIT:Ember Dataは、モデル名が必要なときに「App.SomeKindOfPayment」を渡すこともできます。通常、モデル名の形式をチェックし、それを必要な形式に自動的に更新します。
store.find
,などのパーシスタンス方式の場合は、store.modelFor('myModel')
を使用してください。セットアップ後、container.lookupFactory('model:' + key);
が呼び出されます。ここでkeyは 'myModel'です。したがって、任意の有効なファクトリルックアップ構文が適用可能です。たとえば、次の
OrderItems
というモデルを考える
:order.items
、order_items
、order-items
、orderItems
。
それは結局これを実行する必要はありませんでしたが判明し、そしてなぜここです:私はstore.findAll("payment")
を呼び出すためにモデル(App.Payment
ための「payment
」)の文字列表現にしようとしていた
。しかし、ED source for store
を見ると、findQuery
ファンクションは、ファクトリがすでに指定されていない限り、modelFor
を呼び出してファンクション(App.Payment
)を文字列(payment
)からルックアップします。工場はコントローラから簡単にアクセスできます。this.get('model').type
を呼び出してください。それを文字列に変換する必要はありません。
ここにEmberデータソースの関連コードがあります。
modelFor: function(key) {
var factory;
if (typeof key === 'string') {
factory = this.container.lookupFactory('model:' + key);
Ember.assert("No model was found for '" + key + "'", factory);
factory.typeKey = key;
} else {
// A factory already supplied.
factory = key;
}
factory.store = this;
return factory;
},
これは実際にあなたが提起した質問に答えるものではありません(別の回答とは異なります)、情報は関連しています。 – Alex
- 1. Ember Appにストア/ロードスタティックスの適切な方法
- 2. ファイル名の取得方法
- 3. APN名の取得方法
- 4. ファイル名の取得方法
- 5. プロシージャ名の取得方法
- 6. Emberでデータモデルをブートストラップしますか?
- 7. iOSのデータモデルからコアデータにデータを格納し、データモデルの形式で取得する方法
- 8. グリッド内のストアの範囲を取得する方法
- 9. Ember.js:Appオブジェクトからストアへのアクセスを取得する方法
- 10. Extjs4のストアからフィールドタイプを取得する方法は?
- 11. xmlからグリッドのストアとカラムを取得する方法
- 12. SQL Server:ストアから大量のJSONを取得する方法
- 13. 画像の名前の取得方法
- 14. ワークブックスコープの名前の取得方法は?
- 15. TimeZoneInfoの短縮名の取得方法
- 16. CardHolderの名前の取得方法
- 17. オブジェクトのキー名の取得方法
- 18. ned.DatarateChannelのゲート名の取得方法
- 19. Emberデータモデルのフラグメントの値を検証できますか?
- 20. 作成したレコードのハウツーからのIDを持つemberデータモデル?
- 21. Fitnesseテスト名の取得方法
- 22. (Django)月名の取得方法は?
- 23. メソッド名の取得方法は?
- 24. オブジェクト名の取得方法は?
- 25. ファイルタイプ名の取得方法は?
- 26. Tomcat-Jaas - 件名の取得方法
- 27. XMLノード名の取得方法は?
- 28. AngularJSエイリアスコントローラ名の取得方法は?
- 29. Xamarin.androidコントロール名の取得方法
- 30. オブジェクト名の取得方法は?
あなたがいるすべてのコントローラ/ルータからストアを呼び出すことができるので、必ずしもルートにアタッチされているわけではありませんまたは機能。あなたの店舗名に関連する現在のルートを取得するには、ここをクリックしてください:http://stackoverflow.com/questions/18302463/get-current-route-name-in-ember – DelphiLynx