問題タブ [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.
ember.js - EmberJs: connectOutlet の使用方法
connectOutlet を使用する簡単なテストを作成しました。ただし、あまりレンダリングされません。ここに私のテストコードがあります: http://jsfiddle.net/jeanluca/53dpA/
アプリケーションを要約するだけです。問題は次のコード内にあると思います
このコードの何が問題なのですか?
また、Web で見つけたほとんどすべてのサンプル コードで、App.Router が定義されていることがわかります。
ember-latest では App.Router が既に定義されているため、これは Router を定義する古い方法だと思いますか?
ember.js - controller.get('view')を使用せずにアクションを兄弟ビューに影響を与える方法は?
クイックコンテキスト:アプリケーションビューには2つのアウトレットがあります。1つはツールバー用です。もう1つは、ルーティング可能な「メイン」ビュー階層用です。
「メイン」ビューでイベントをトリガーするには、ツールバーにいくつかのボタンが必要です。どのモデルのデータも更新しないでください。ビューが表示している図面ライブラリにいくつかの変更をトリガーするように指示するだけです。キャンバスをクリアしたり、ズーム値をリセットしたりします。
1.0 pre2以前では、actionsとrouter.get('someController.view')を使用して、必要なビューにアクセスし、action / method/eventをトリガーしました。アプリケーション設計の頂点はほとんどありませんが、問題なく機能しました。
このオプションはなくなり、私は良い選択肢を見つけることができなくなりました。子/親階層にないビュー間で通信する場合、どのメカニズムを使用する必要がありますか?私が思いついたものはすべて不格好で、「燃えさしにはもっと良い方法がある」という私の感覚を引き起こします。
要するに私は欲しい:
- イベントをトリガーするためのツールバーボタン
- これに反応し、それ自体の一部でいくつかの更新を実行するためのメインビュー。
- ルーティングを介した場合のように、Emberの意味で再レンダリングしないという主な見解。描画ライブラリを使用し、そのすべてのプロパティと動作をEmberモデルとコントローラーに統合するのはそれほど楽しいことではありません。
- ツールバーとメインビューは親ビューを共有しますが、異なる「ブランチ」にあります。
私が検討している貧弱なオプション:
ツールバーはアプリケーションレベルの問題ですが、特定のビューを指示する必要のあるボタンがいくつかあります。Ember内に表示されるオプションの1つは、「メイン」ビューの下にツールバーをネストすることです。これは、他の機能の一部では間違っているようです。
通信は、ツールバーが設定するプロパティと「リスニング」ビューが反応しての値をリセットするプロパティを保持するコントローラー(および場合によってはモデル)によって処理できます。これは、コントローラーとモデルの目的の乱用のように聞こえ、イベントリスナーのセットアップがかなり貧弱なように聞こえます。
描画ライブラリをApp.Drawingなどのグローバルなアプリケーションにすることもできますが、それも悪いようです。また、アクションは、ビュー内のデータを使用して図面ライブラリを更新することができないことも意味します。
助言がありますか?
ember.js - ember.jsのテンプレートでモデルのルート名項目をlinkToに渡す方法
ルート名を {{linkTo}} に動的に渡すにはどうすればよいですか?
たとえば、次のコードがあるとします。
これらのテンプレート:
これらのモデルは、次のフィクスチャ データを使用します。
navItemPath を {{linkTo}} ヘルパーに渡すにはどうすればよいですか? このコード スニペットでは:
ember は、文字通り探しているように、「navItemPath」ルートが見つからないと文句を言います。それを次のような有効なリテラルルートに置き換えると:
ember は期待どおりに navItemName を使用して linkTo をレンダリングするため、コントローラーが正しいデータを渡していることはわかっていますが、もちろんすべてのルートは間抜けです。明らかな何かが欠けていますか?
ember.js - Ember の V2 ルーターでパスを保存してそこに戻る方法
それで、私は Ember の新しいルーターでいくつかの問題を抱えています。特定の動的セグメントの現在のパスを保存して後で戻そうとしているので、URL は次のようになります。
その後、分岐することができます
等々 直前のルートに戻る方法が必要です。Ember ガイドには、このための方法があります。
http://emberjs.com/guides/routing/redirection/
この方法の問題点は、「/choose」ルートを作成して「/」に割り当てると、標準の「/inventory/vehicle/1001」ルートが上書きされることです。たとえば、車へのリンクを次のように作成しようとすると、次のようになります。
次に、「車両」ルートが存在しないため、Ember はエラーをスローします。代わりに、次のように設定する必要があります。
どちらが機能し、VehicleChooseRoute とすべてをアクティブにします。ただし、「vehicle.choose」は技術的には「vehicle」の子であるため、現在のルートが
瞬時に最新のフィルターにリダイレクトされるため、基本的にオンになることはありません。だから基本的に私はこれを回避する方法を見つけようとしています。「vehicle.choose」のパスを標準パス (#/inventory/vehicle/1001/choose) に変更して、「vehicle」ルートを上書きしないようにしてから、VehicleRoute を次のように設定してみました。
しかし、これから発生する問題は (一緒にハッキングされていると感じることは別として)、通常は「車両」によってレンダリングされるテンプレート全体がリダイレクトによって置き換えられるため、サブビューのみを取得することです。したがって、それはオプションではありません。
ember.js - Router Basics in 1.0.0-Pre.4 - 現在のリリースでルーターを作成する正しい方法は?
私はそのような初心者で漠然とした質問をするのは嫌いですが、脳が爆発しようとしている人が他にもいるに違いないと思います. 関連する質問が表示されますが、私の混乱に直接対処するものはありません。
私は Ember.js を紹介されたばかりで、Router の基本を学ぼうとしていますが、これがどのように行われるかについて同意する 2 つの情報源が見つかりません。不安定な移行中に飛び込んでいると思われます。最新の 1.0.0-Pre.4 リリースを使用しています。
私が把握できる最善の方法は、Router が新しいメカニズムであり、StateManager を置き換える可能性があることです。はい? それでも、Web サイトの 1.0.0-Pre.4 API の下にリストされているクラスには、ルーター オブジェクトがリストされておらず、ガイドにも記載されていません。 Em.Router を拡張します。
わかりました。ただし、多くのデモ プロジェクトに存在するが、現在のリリースでは認識されていない Router メンバー「transitionTo」をバーフします。
だから、私が求めているのは直接的な質問ではなく、矛盾した情報の海の中で接地点を探しているのだと思います.
Ember.js を現在 (1.0.0-pre.4) の状態で開始し、競合する履歴がない場合、どのルーティング メカニズムを調べればよいか、チュートリアルや簡単なサンプル アプリでデモやこのバージョンのライブラリに対して実行されますか? ルーティングに関してドキュメントが古くなっているという私の疑いを確認できますか?
Ember.js は学ぶべきことがたくさんあります。それを理解したいと思うなら、何を無視し、何を受け入れるかを知る必要があります。
ありがとうございました。
javascript - Ember.js (pre4) 配列コントローラーが状態を保持しない
編集 2013-03-02
これは RC1 で解決されたようです
Ember.js の以前のバージョンでは、コントローラは割り当てられた状態を保持していましたが、これは Pre4 の問題のようです。
もし私がこのコントローラーを持っていたら
なんらかの理由でコンテンツが上書きされます。私は ember data を使用したくありませんが、その方向に強制されているようです。
このJS Fiddleは、この問題を例示しています。
どうしたの?どうすればそれを止めることができますか、それともこれは残り火の独断に深く染み込んでいるので、それを受け入れて流れに乗る必要がありますか?
編集
これをもう少し進めると、フックをオーバーライドしたとしても、 として設定されているものはすべて値にmodel
設定されるように見えます。content
setupController
例えば:
はUsersController.content
値で終了します['This','Shouldnt','Be','Assigned']
この更新されたフィドルを参照してください
ember.js - EmberJSの2.2ルーターで動的セグメントを使用するにはどうすればよいですか?
EmberJSの新しいルーターAPIで動的セグメントを使用してルートを作成する方法がわかりません。私はそれに一週間を費やし、多くのことを試しましたが、うまくいきません。ドキュメント、API、ソースコードを何度も読んだことがあり、これを機能させる方法がわからないため、私は自分自身に本当に不満を感じています。私は助けを求めて死にかけています。
私は次のルートを達成しようとしています:
- / profile /:userId->インデックス
- / profile /:userId/activity->アクティビティページ
- / profile /:userId/..。
私のルーターはこのように設定されています
次に、linkTo
ヘルパーとリンクしようとすると、次のエラーが発生します。Uncaught More objects were passed than dynamic segments
オブジェクトを含めないuser
と、別のエラーが発生しますUncaught Error: assertion failed: Cannot call get with 'id' on an undefined object.
(明らかに、IDを取得するオブジェクトがないため)
それがヘルパーなら、ここに私のルート宣言があります