問題タブ [ember-old-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.

0 投票する
3 に答える
13961 参照

routing - Ember.js ルーティング: すぐにレンダリングするデフォルト ルートをどのように設定しますか?

深く掘り下げれば明らかになると思いますが、今のところ、これを実現する方法は明らかではありません。

ルーティングに関するこの役立つ SO 記事の情報に従っていましたが、この例には重要な部分が欠けています。つまり、「ホーム」リンクをクリックせずに「ホーム」ビューをすぐにレンダリングするにはどうすればよいですか?

私はこれを理解するためにドキュメントを掘り下げ始めましたが、その間、後世のために答えたのは有用な質問のようです.

上記の質問hereの動作中のjsfiddleの例で遊んでいて、デフォルトのルーティングが動作しているように見える他の例と比較しています

ここまではまだ謎です。

現在のコード:


更新: 解決策

私が取り組んでいた例が機能しなかった理由Em.State.extendは、Em.Route.extend. 興味深いのは、それらを 1 つずつ変更していくと、すべてを変更するまで例が機能しないことです。

これが実際のです:

0 投票する
3 に答える
5940 参照

ember.js - Emberjs: ルーターでの条件付きリダイレクト

ルーターの内部一貫性を損なうことなく、Ember.js ルーターで条件付きリダイレクトを行う方法はありますか?

0 投票する
1 に答える
1878 参照

ember.js - Ember.Route を使用して「表示」ページにルーティングする際のエラー

このエラーは私を夢中にさせています。ここで質問する前に、freenode #emberjs を試しました。

次のルーティングスキームがあります。

投稿のpostsリストを表示するルートは正常に機能します。たとえば、特定の投稿に移動するposts\1と、コンソールに次のエラーが表示されます。

必要に応じて、スタック トレースを参照してください: http://pastebin.com/eEJ2hMAV

ルーターは App.router.postController のコンテンツ プロパティを、ユーザーがクリックしている投稿に設定します。コンソールでは、

戻りますtrueaddArrayObserverそして、これを呼び出そうとしますcontentが、DS.Model は Ember.Array (addArrayObserver が定義されている場所) を拡張していません。

一方で、

を返し、これtrueを呼び出すと正常に動作します。addArrayObservercontent

私は何が欠けていますか?

0 投票する
1 に答える
3329 参照

javascript - Ember.Router で ApplicationController を設定するにはどうすればよいですか

Ember.Routerコントローラーとビューで処理する他の可能性はありますか? 私のアプリの構造は通常、対応する依存関係を処理する require.js に依存しています。

私の例では、App.ApplicationController をメインのルーター コントローラーとして実行しています。

ここに jsfiddle があります: http://jsfiddle.net/mediastuttgart/uMKGt/1/

しかし、これを手動で設定する機会はありますか? このコミットメッセージを見つけましたhttps://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475ここで、コントローラーとビューを手動で設定する方法を確認できます(とにかくこれを機能させることができませんでした)。しかし、次のような例は見つかりませんでした:

編集

これをもう少し詳しく説明しようと思います。依存関係を管理するためにrequire.jsを使用していますが、アプリケーション全体の独自の部分を担当する複数のコントローラーがあります。ニュースレターの登録フォームがあるとします。このシナリオで使用されるコントローラーは、次のように構成されています。

Em.Provide('App.Controller.Newsletter');でオブジェクトを作成する名前空間を生成するためにカスタム関数を使用するためApp.Controller.Newsletterです。このオブジェクトは、ニュースレター アプリケーション全体のコントローラー ベースとして機能します。まずApp.Controller.Newsletter.Signup = Ember.Controller.extend({});、このインスタンスをルーターの「ApplicationController」として渡す必要があります。ご覧のとおり、単にApp.ApplicationControllerEmber.Router のコントローラーをインスタンス化するために使用することはできません。

0 投票する
1 に答える
812 参照

routes - Ember.js:ルーター/ルートとStateManager /ステートの違いは何ですか?

ルーティングの使用の古い例StateManagerと新しい例はの概念を使用しているようですRouter。違いは何ですか?また、なぜ一方を他方の上に使用するのですか?

0 投票する
1 に答える
5453 参照

javascript - Ember.js - Ember.Router を使用してコレクションをビューに正しくバインドする方法は?

以前は で作業していましたが、Ember.StateManager最終的に に切り替える前にいくつかのテストを行っていEmber.Routerますが、コントローラーにあるコレクションからビュー データを適切にバインドする方法を理解できていません。

私は非常に単純なテスト構造を持っており、ナビゲーションEmber.Routerに関してはうまく機能していますが、データ バインディングに関しては期待どおりに機能していません。私のデータに関しては、正常に動作している REST サービスを実行する単純な ASP.NET MVC4 Web API があります (Fiddler でテストしましたが、すべて問題ありません)。EF4.* を使用して SQL に保存しても、問題はありません。

クライアントアプリに関しては、contacts.indexルートでバインドしようとしましたがconnectOutlets(別の方法でこれを行う必要がありますか?)、ビューがバインドされていないため、コードが正しく機能していないようです。

ルートのconnectOutlets方法で、私が以前に試したこと:contacts.index

1

2

私もenterメソッドを使用しようとしました

そして、次のようにビューに直接バインドしようとしました:

私のコードの現在のバージョンは次のとおりです。

関連するテンプレートは次のとおりです。

テストとして、次のようにコントローラーにコレクションを手動で入力しようとしましたcontentが、そのルートに移動したときも空でした:

そうですね、ここまで読んでいただけたなら、私の質問は次のとおりです。Ember.Router を使用してコレクションをビューに適切にバインドする方法は?

SO の他の質問と同様に、多くの例を見てきましたが、まだうまくいくものは何も見ていません ( binding を使用した他のサンプルを自由に指摘してください)

ありがとうございました

0 投票する
2 に答える
16265 参照

ember.js - Ember でナビゲーションを行う正しい方法

ナビゲーション サイドバーの「正しい方法」(または、これを行う単一の「Ember 方法」がない場合は、少なくともオプション) は何ですか? どうにかして ContainerViews を見るべきですか、それとも新しいアウトレット機能を使用してアプリケーション ビュー内にナビゲーションを固定するべきですか?

さらに、URL に応じて li に .active クラスを設定する「正しい方法」は何ですか (私はルーティングを使用しています)? これには何らかのヘルパーがありますか?

0 投票する
1 に答える
3601 参照

javascript - Ember.js-CRUDシナリオ-ルート内からのビューの指定

以前、コントローラーにあるコレクションをリストシナリオビューにバインドしたいという質問をしましたが、詳細を追加し、テンプレートとビューを構造に編集して、いくつかの追加のサブルートを作成しました。

root.contacts.details -> /contacts/:contact_id
root.contacts.edit -> /contacts/:contact_id/edit

私のシナリオでは、私は最初に次detailsのように呼び出し始めましたconnectOutlets

これにより、ブラウザのナビゲーションバーのルートが変更されますが、同じビューが読み込まれるため、連絡先ではなく連絡を次のように変更.connectOutletしました

このため、Emberがという名前のコントローラーを見つけることができなかったため、新しいコントローラーを作成する必要がありました。そのため、aとaでcontactController終わり、MVCパターンを壊して、追加のクラスを作成していると思います。同期で発生する可能性のある問題を維持します(連絡先を編集するときは、のコレクションと手動で同期する必要があります)。また、に移動すると、で同じ名前を使用しているため、詳細ビューが読み込まれます。だから私がしていることは正しくありえない。シナリオごとにコントローラーを作成したくありません。私はこれがそれが行われる方法ではないと確信しています。contactControllercontactsControllercontactsController/#/contacts/2/edit.connectOutlet('contact')

App.EditContactViewまた、リソース名の代わりにビュー(私の場合)を設定しようとしましたが、「名前またはviewClassは渡すことができますが、両方は渡すことができませんconnectOutlets」というエラーが発生しましたが、パススルーではなく、引数として。viewClassconnectOutlet

また、ビューまたはビューのインスタンスをルート自体に設定しようとしましたが、JavaScriptが壊れるか、場合によっては「App.EditContactViewにメソッドCharAtがありません」というエラーが表示されます。

それからまた、私は少し迷子になりました。SOやその他の場所で他の質問を見たことがありますが、私が見つけた質問は、ember-routermanagerGordon Hemptonによって使用されているか(これは良さそうですが、今だけビルトインを使用することに興味があります)、Ember.StateManagerまたはすべて。ドキュメントはまだこれらのことについてあまり説明していません。

質問:すべてのCRUDシナリオに対処するための理想的なアプローチは何でしょうEmber.Routerか?contactsControllerすべてを一覧表示し、1つを検索し、1つを編集し、1つを追加し、1つの連絡先を削除できるようにしたいと思います。現在、名前の問題のため、1つと1つ、、、contactsControllerがあります。findAllcontactControllerfindeditremoveadd

私は現在ember-dataを使用していないので、ember-dataを参照しない例にもっと興味があります(今のところプラグインなしで赤ちゃんのステップを実行しています)。

これが私のルーターの現在のバージョンです:

JS

関連するテンプレート

:不明な点がある場合は、コメントセクションで質問してください。詳細を編集できます。

編集:このプロジェクトをGitHubに追加しましたが、学習サンプルとして公開したいものにはほど遠いです。目標は、この上で進歩し、近い将来にCRUDテンプレートを作成することです。現在MSWebAPIを使用していますが、Railsバージョンがまもなく追加される可能性があります。

0 投票する
2 に答える
1673 参照

ember.js - Emberルーターがリーフルートへのナビゲートのみを許可するのはなぜですか?

最近EmberRouterで気付いたのは、リーフルート(子ルートのないルート)へのナビゲートのみが許可されていることです。

今、私が間違ったことをしていない限り、これは設計上のバグ/間違いのようです。

たとえば、次のようなものを考えてみましょう。

私にはプロジェクトのコレクションがあり、各プロジェクトには多くの共同作業者がいます。これにより、3列のレイアウト(標準のデスクトップメールクライアントのようなもの)でUIを構築したいと思います。左側には、プロジェクトのリストがあります。プロジェクトの中央の列には共同編集者のリストが表示され、共同編集者をクリックするとその詳細が右側の列に読み込まれます。

/projects/1ここで、プロジェクトをクリックしたときに移動/projects/1/collaborators/23し、共同作業者をクリックしたときに移動したいルーティングを使用します。

ネストされたルートの最初の部分を示すルーターは次のとおりです。

root.projects.showご覧のとおり、この行のために、Emberはに移行するまでupdateRouteを呼び出しません(URLを設定します)https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable .js#L81

他の誰かがこのようなことをしましたか?これを設計するためのより良い方法はありますか?

0 投票する
1 に答える
1297 参照

ember.js - Router / StateManager - 機能しません

このガイドで指定されているようにルーターを実装しようとしてきましたが、うまくいきません。Ember の最新バージョンを使用して URL 経由のルーティングをサポートするルーターを有効にする簡単なコード サンプルを教えてください。