問題タブ [ember-router]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Ember - 自動的に firstObject にリダイレクト
/clinic/1
Ember パスが自動的にリダイレクトされて最初の医者が表示されるようにしたい: /clinic/1/doctor/1
.
各クリニックには多くの医師がいます。
残念ながら、このコードを使用すると:
...このコードが で実行される場合content.doctors.length
と同様に、機能しません。0
app_router.js
何か案は?
ember.js - emberrouterv2で非ID動的パラメーターを使用する
新しい残り火ルーターで非IDパラメーターを使用することをいじった人はいますか?
古いバージョンのルーターに戻ると、ルート上のシリアル化メソッドと逆シリアル化メソッドにアクセスできるため、簡単に実行できるように見えました。事実上、モデルの非ID属性をparamsハッシュに逆シリアル化することができ、ルート上の逆シリアル化メソッドとシリアル化メソッドをそれぞれ使用して、その非ID属性からオブジェクトをシリアル化することができます。私の理解では、シリアル化と逆シリアル化のメソッドは公開されなくなったため、処理が少し難しくなります。
ember.js - Emberルーターv2でモーダル状態を開始および終了する正しい方法は何ですか?
新しいEmberルーターでモーダル状態/ビューを処理する正しい方法がわかりません。より一般的には、「メイン」状態(URL)に影響を与えずに出入りできる状態をどのように処理しますか?
たとえば、現在のリーフの状態に関係なく常に使用できる[新しいメッセージ]ボタン。[新しいメッセージ]をクリックすると、URLに影響を与えることなく、現在のビューでモーダルな新しいメッセージが開きます。
現在、私は次のようなアプローチを使用しています。
ルート:
application.handlebars:
簡潔にするために、明らかにいくつかのコードを省略しました。
このアプローチは「機能します」が、上記の2つの問題があります。
- プライベートAPIを使用して、
hideModal
イベントハンドラーのモーダルビューを削除しています。 - すべてのサブルートでテンプレートを指定する必要があります。指定
application
しない場合renderTemplate
、モーダルを開いて閉じてから受信トレイ間を移動すると、のデフォルトの実装はアプリケーションではなくモーダルのテンプレートにレンダリングしようとします。およびアーカイブ状態(モーダルのテンプレートがlastRenderedTemplate
IndexRouteのになっているため)。
明らかに、これらの問題はどちらも取引を妨げるものではありませんが、私が見逃しているより良いアプローチがあるかどうか、またはこれが現在のルーターAPIの単なるギャップであるかどうかを知ることは素晴らしいことです。
ember.js - Ember.js の新しいルーター ナビゲーション エラー メッセージ: エラー: アサーションに失敗しました: 未定義のオブジェクトで「id」を使用して get を呼び出すことはできません
私は新しいルーターと新しい Ember コード (バージョン: v1.0.0-pre.2-366-g4772b18) を試していますが、少し困っています。簡単なことをしたい: リンクをクリックすると、その状態に移動する必要があります。
しかし、代わりに次のエラーが発生します。
アサーションが失敗しました: 未定義のオブジェクトで 'id' を使用して get を呼び出すことはできません。
エラーをトリガーするには、大きな赤いタイトルをクリックします。上の最初のもの - 「Ember Ready」と書かれているもの。
私は JSFiddle を持っていませんが、ここでライブ サイトを確認できます: http://eduardmoldovan.com/基本的に同じコードをそこにプッシュしました。
私のコード:
そして、次のような単純なアクション:{{action goToArticle}}
誰が何を呼びたいのかよくわかりません。これについて何か考えはありますか?私は答えや例を探していましたが、幸運ではありませんでした。
ember.js - Ember.jsの新しいルーターの「履歴」の実装
すべてのドキュメントを確認したと思いますが、ルーターの「履歴」実装を使用できません。誰かがそれがどのように使われるべきかについての短い例を持っていますか?または、一般的に、ルーターパラメータを新しいルーターに渡す方法(たとえば、ロギングも)。
ember.js - 新しいember.jsルーティング:アウトレットを接続する方法は?
新しいルーターのアプローチでコンセントを接続する方法がわかりません。
index.html:
app.js:
このコードはoutlet-1をレンダリングします。
質問:
- アウトレット1がレンダリングされるのはなぜですか?アウトレット1と「インデックス」はどのように接続されていますか?
- アウトレット2と3を同じ「インデックス」サイトに接続するにはどうすればよいですか?
ありがとう
miw
ember.js - 最新のEmberでは、リンクページですべての属性を提供するのではなく、モデルのID /名前だけでルートにリンクするにはどうすればよいですか?
Ember 1.0-pre2から最新のマスター(43354a98)と新しいルーターに変換するときに問題が発生しました。
一連のレコードの名前とIDだけをロードするルートがあり、それらの各レコードを完全なモデルを表示する別のルートにリンクしようとすると、新しいルートに到着したときに、新しいモデルがロードされません。 、および名前とIDは、使用可能な唯一の属性です。
コード例:
ここで、App.Bird.find()はいくつかのXHRを実行して、一連のリモートAPI(ember-dataを使用しない)からEmber.Objectを構築します。問題を単純化するために、この例のためだけに鳥のリストがコントローラーにハードコードされています。私の実際のアプリケーションでは、リストはリモートAPIからのものです。
私が見ている動作は、/ birdsから開始してリンクのいずれかをクリックすると、ルーターが「bird」に移行し、/#/ birds / b.5に到達しますが、App.Bird.find()は呼び出されることはなく、ページにあるデータは「name」と「id」だけです。ただし、その後ページをリロードすると、App.Bird.find()が呼び出され、モデルが適切に構築されて表示されます。
URL内のIDから強制的に逆シリアル化する方法、またはIDが完全であると想定するオブジェクトではなくlinkToにIDを渡す方法はありますか?私は古いルーターでうまく機能する類似の実装を持っていました。
ember.js - ember v2ルーターでは、controllerFor()がこのコントローラーへの参照を提供しないのはなぜですか?
これがフィドルです。
http://jsfiddle.net/inconduit/hf7XM/10/
問題を再現する手順:
- 「投稿に移動」をクリックします。
- 「controllerFor」テキストをクリックしても、リストはクリアされません。
- グローバル参照テキストをクリックすると、リストがクリアされます。
によって返されるコントローラー参照は、controllerFor()
実際にはPostsIndexController
?ではないようです。何故ですか?
ルートのフックでハッキングして、setupController()
アプリのそのコントローラーへのグローバル参照を設定し、その参照のコンテンツを の新しい配列に設定するemptyList2()
と、テンプレートでリストが正しくクリアされます。
私はcontrollerFor()
間違って使用していますか?またはそれが返すものを誤解していますか?それはスコーピングの問題ですか?私を助けてください。
ember.js - Ember.js の新しいルーター カスタム スラッグの使用
私はこのルーターコードを使用しています:
serialize
モデルからその記事のデータを取得できるように、メソッドでクリックされた要素の URL を取得する必要があります。の場合にこれを行う方法は明らかですが、 でid
これを行う方法についての手がかりがありませんurl
。
templates - Ember.Handlebars.compile() を使用してクラス定義で Ember テンプレートを宣言するにはどうすればよいですか?
最新の ember マスター ビルドでは、次のようなテンプレートを宣言しようとしています。
..そしてそれは機能していません。templateName
同じコードを使用し、プロパティを使用して HTML でテンプレートを参照すると、正常に機能します。何か案は?
これは、周囲のコードと HTML を含む jsfiddle です: http://jsfiddle.net/TTMMz/3/