問題タブ [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.
routing - Ember.js ルーティング: すぐにレンダリングするデフォルト ルートをどのように設定しますか?
深く掘り下げれば明らかになると思いますが、今のところ、これを実現する方法は明らかではありません。
ルーティングに関するこの役立つ SO 記事の情報に従っていましたが、この例には重要な部分が欠けています。つまり、「ホーム」リンクをクリックせずに「ホーム」ビューをすぐにレンダリングするにはどうすればよいですか?
私はこれを理解するためにドキュメントを掘り下げ始めましたが、その間、後世のために答えたのは有用な質問のようです.
上記の質問hereの動作中のjsfiddleの例で遊んでいて、デフォルトのルーティングが動作しているように見える他の例と比較しています
ここまではまだ謎です。
現在のコード:
更新: 解決策
私が取り組んでいた例が機能しなかった理由Em.State.extend
は、Em.Route.extend
. 興味深いのは、それらを 1 つずつ変更していくと、すべてを変更するまで例が機能しないことです。
これが実際の例です:
ember.js - Emberjs: ルーターでの条件付きリダイレクト
ルーターの内部一貫性を損なうことなく、Ember.js ルーターで条件付きリダイレクトを行う方法はありますか?
ember.js - Ember.Route を使用して「表示」ページにルーティングする際のエラー
このエラーは私を夢中にさせています。ここで質問する前に、freenode #emberjs を試しました。
次のルーティングスキームがあります。
投稿のposts
リストを表示するルートは正常に機能します。たとえば、特定の投稿に移動するposts\1
と、コンソールに次のエラーが表示されます。
必要に応じて、スタック トレースを参照してください: http://pastebin.com/eEJ2hMAV
ルーターは App.router.postController のコンテンツ プロパティを、ユーザーがクリックしている投稿に設定します。コンソールでは、
戻りますtrue
。addArrayObserver
そして、これを呼び出そうとしますcontent
が、DS.Model は Ember.Array (addArrayObserver が定義されている場所) を拡張していません。
一方で、
を返し、これtrue
を呼び出すと正常に動作します。addArrayObserver
content
私は何が欠けていますか?
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.ApplicationController
Ember.Router のコントローラーをインスタンス化するために使用することはできません。
routes - Ember.js:ルーター/ルートとStateManager /ステートの違いは何ですか?
ルーティングの使用の古い例StateManager
と新しい例はの概念を使用しているようですRouter
。違いは何ですか?また、なぜ一方を他方の上に使用するのですか?
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 を使用した他のサンプルを自由に指摘してください)
ありがとうございました
ember.js - Ember でナビゲーションを行う正しい方法
ナビゲーション サイドバーの「正しい方法」(または、これを行う単一の「Ember 方法」がない場合は、少なくともオプション) は何ですか? どうにかして ContainerViews を見るべきですか、それとも新しいアウトレット機能を使用してアプリケーション ビュー内にナビゲーションを固定するべきですか?
さらに、URL に応じて li に .active クラスを設定する「正しい方法」は何ですか (私はルーティングを使用しています)? これには何らかのヘルパーがありますか?
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パターンを壊して、追加のクラスを作成していると思います。同期で発生する可能性のある問題を維持します(連絡先を編集するときは、のコレクションと手動で同期する必要があります)。また、に移動すると、で同じ名前を使用しているため、詳細ビューが読み込まれます。だから私がしていることは正しくありえない。シナリオごとにコントローラーを作成したくありません。私はこれがそれが行われる方法ではないと確信しています。contactController
contactsController
contactsController
/#/contacts/2/edit
.connectOutlet('contact')
App.EditContactView
また、リソース名の代わりにビュー(私の場合)を設定しようとしましたが、「名前またはviewClassは渡すことができますが、両方は渡すことができませんconnectOutlets
」というエラーが発生しましたが、パススルーではなく、引数として。viewClass
connectOutlet
また、ビューまたはビューのインスタンスをルート自体に設定しようとしましたが、JavaScriptが壊れるか、場合によっては「App.EditContactViewにメソッドCharAtがありません」というエラーが表示されます。
それからまた、私は少し迷子になりました。SOやその他の場所で他の質問を見たことがありますが、私が見つけた質問は、ember-routermanager
Gordon Hemptonによって使用されているか(これは良さそうですが、今だけビルトインを使用することに興味があります)、Ember.StateManager
またはすべて。ドキュメントはまだこれらのことについてあまり説明していません。
質問:すべてのCRUDシナリオに対処するための理想的なアプローチは何でしょうEmber.Router
か?contactsController
すべてを一覧表示し、1つを検索し、1つを編集し、1つを追加し、1つの連絡先を削除できるようにしたいと思います。現在、名前の問題のため、1つと1つ、、、contactsController
があります。findAll
contactController
find
edit
remove
add
私は現在ember-dataを使用していないので、ember-dataを参照しない例にもっと興味があります(今のところプラグインなしで赤ちゃんのステップを実行しています)。
これが私のルーターの現在のバージョンです:
JS
関連するテンプレート
注:不明な点がある場合は、コメントセクションで質問してください。詳細を編集できます。
編集:このプロジェクトをGitHubに追加しましたが、学習サンプルとして公開したいものにはほど遠いです。目標は、この上で進歩し、近い将来にCRUDテンプレートを作成することです。現在MSWebAPIを使用していますが、Railsバージョンがまもなく追加される可能性があります。
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
他の誰かがこのようなことをしましたか?これを設計するためのより良い方法はありますか?
ember.js - Router / StateManager - 機能しません
このガイドで指定されているようにルーターを実装しようとしてきましたが、うまくいきません。Ember の最新バージョンを使用して URL 経由のルーティングをサポートするルーターを有効にする簡単なコード サンプルを教えてください。