問題タブ [backbone-routing]
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.
internet-explorer - IEのバックボーンルーター
ユーザーが特定のURLルートにアクセスしたときに、Backbone.jsルーターを使用して特定の初期化メソッドを起動しています。したがって、バニラアンカータグを介して移動すると、バックボーンルーターで/posts/1
関連付けられているコールバックがすべて起動されます。/posts/:id
が設定されている場合、これは最新のブラウザで正常に機能しますBackbone.history.start({ pushState : true })
。ただし、IEでは、ヒットしようとするユーザー/posts/1
はにリダイレクトされ/#posts/1
ます。これは、意味のないハッシュ文字列を含む私のホームページにすぎません。
明確にするために、pushStateは必要ありません。URLをブラウザの履歴にプッシュしようとはしていません。私はそれらを読み、次にコールバックを起動しようとしています。これはどのブラウザでも実行可能であるはずです。
シンプルな機能のようですが、困っています。
ありがとう!
backbone.js - ルートが1つしかないbackbone.jsの履歴?
私は最初のバックボーン プロジェクトを開発していますが、どのように満たせばよいかわからないという要件があります。解決策は、アプリを適切にルーティングすることと関係があると確信していますが、よくわかりません...
3 つのビューがあります。
私が抱えている問題は、ユーザーが戻るボタンを使用して最初の検索に戻り、そこから検索結果に再び移動できるようにすることです。これを行う方法がわかりません。どんな支援も大きな助けになるでしょう。
ありがとう!
backbone.js - route に渡されたクエリが / を含む場合の backbone.js ルーティング
私のアプリは基本的にフォーム入力を受け取り、一連の結果を返します。私は2つのルートを持っています
クエリに特定の文字が含まれている場合 (この場合は完全に発生する可能性があります)、それらは URL に追加され、ルートが中断されます。
私は使ってみましたがencodeURI()
、encodeURIComponent()
少し運がありません。皆さんはそのようなことをどのように処理していますか?
backbone.js - どうすれば、backbone.jsを使用してIE8とIE10 /最新のブラウザー間で一貫したPushStateリンクを取得できますか?
Chromeを使用しているので、URL「http://www.example.com/a/123456789」をコピーしてIE8に貼り付けます。ルートが正しく設定されているので、問題なく動作します。
その後、別の場所に移動すると、期待どおりにIE8フォールバックURLが取得されます:「http://www.example.com/a#a/123456789」(ハッシュに注意)、すべて問題ありません。
ここに問題があります...
ここで、ハッシュ(http://www.example.com/a#a/123456789)を使用してリンクをコピーし、それを最新のブラウザーに貼り付けると、http://www.example.com/a#にダンプされます。 。_
誰かがこの行動の経験がありますか?
backbone.js - ルーティングとイベント-backboneJS
BackboneJSでルーティングをどのように処理する必要がありますか?ルーティングするとき、ビューを新しくアップした後、イベントをトリガーする必要がありますか、それともビューを直接レンダリングする必要がありますか?
2つのシナリオは次のとおりです。
トリガーイベント:
私の見解では、私は持っています:
または、このルートに行く必要があります:
私の見解では、私は持っています:
バックボーンがイベント駆動型であることを考えると、これが最初のシナリオだと思いますが、2番目のシナリオは明らかにコードが少なくなっています。
また、3番目のシナリオは最初のシナリオでビューコードを保持することだと思いますが、2番目のルーターシナリオを取得します...ナビゲーションでビューをレンダリングしますが、他の場所でトリガーしたい場合に備えてイベントを公開します。
考え?
json - Backbone.js - 異なるルートで JSON からリストまたは個々のアイテムをロードするにはどうすればよいですか?
自分用の簡単なポートフォリオ サイトを作成して、Backbone.js の使用を開始しました。現時点ではあまり機能がありませんが、ライブラリに慣れてきたら、さらに追加したいと考えています。json を使用して、すべてのポートフォリオ アイテムを一覧表示するか、ルートに応じてそのうちの 1 つを表示するサイトのデータを入力しています。ポートフォリオ アイテムのリストが動作/表示されていますが、特定のルート (/#projects/2 など) のアイテムを 1 つだけ表示するのに苦労しています。ここで助けが必要です。
バックボーンの学習を開始し、さまざまなボイラープレートとチュートリアルを見てきましたが、どれも大きな助けにはなりませんでした。
これらのルートで、私はこれが起こることを望みます:
- / - ポートフォリオ アイテムのリスト
- /#projects - ポートフォリオ アイテムのリスト
- /#projects/3 - 1 つのポートフォリオ アイテム
JSbin に試してみましたが、json を適切にロードする方法がわからないため、うまくいきません...
モデルではなくコレクションにすべてのアイテムをロードしているため、問題が発生することは確かです。そうですか?
- どうすればこれを機能させることができますか?
- どうすればこれを改善できますか?
[編集 - - - - - - - - - - ]
以下のピーターの親切な助けの後、私はまだ援助を必要としています. 彼は言った:
ビューには 1 つのモデルが表示され、コレクション ビューにはモデルごとに 1 つのビューのリストが表示されます。
では、json データから 1 つのアイテムを表示するビューを作成し、コレクション ビューを作成してそれらすべてを表示するにはどうすればよいでしょうか。私が尋ねる理由は、私はそれらすべてを問題なく返品できるためですが、単一のアイテムを返品するのは非常に難しいことがわかっています..
コード例も更新しました: http://jsbin.com/asezul/8/edit
[ - - - - - - - - - - -編集]
さらに情報が必要な場合はお知らせください。私は Backbone を初めて使用するので、質問に答えるのに役立つ重要な部分を見逃している可能性があります。
以下はコードの抜粋ですが、JSbin でコードを表示することをお勧めします。
モデル:
コレクション:
ビュー:
ルーター:
backbone.js - FirefoxでのみBackboneアプリでイベント後に「this.modelisundefined」を取得する
私はバックボーンとその概念に頭を悩ませようとしています。Backbone.Routerの詳細と、BackboneをRequire.jsと統合する方法を学ぶことができるように、簡単なアプリを作成しました。
このアプリはChrome、IE9、Safariでうまく機能しますが、Firefoxの最新バージョンでは、クリックイベントがトリガーされて消費された後、「TypeError:this.modelisundefined」エラーがスローされます。助けてくれてありがとう!
便宜上、以下のアプリ全体へのリンクを添付しました。
https://dl.dropbox.com/u/19138757/Backbone_Example.zip
エラーが発生している方法についてコメントします。
document.js
document.js
router.js
backbone.js - Safari がバックボーン ルートを 2 回起動する
Safari のバックボーン ルーターで頭が痛い
私はこのコードを持っています:
そして私のルーターで:
クロムでは、期待どおりに機能し、URL がルーティングされ、askSearch 関数が 1 回呼び出されます。
ただし、Safari では、askSearch 関数は実際には 2 回実行されます。
そして私が試したとき
クロムでは、askSearch関数は期待どおりに呼び出されませんでしたが、Safariでは実際に一度呼び出されます
私はデバッガーを実行しましたが、 app.navigate 行は常に一度だけ呼び出され、ルーター自体以外に askSearch 関数を起動できるものは他にないと確信しています。
これで、ブラウザの種類を検出することでこれを修正できることがわかりましたが、オンラインで同様の問題は見つかりませんでした。人々はこの問題を抱えていないようです。ここで何か非常に悪いことをしていますか?
backbone.js - Backbone.jsルーターは、投稿ではなく、配置時にトリガーします
そのため、私は基本的なBackbone.jsを使用して、基本的なユーザーマネージャーである簡単なデモページを作成しています。ユーザーの情報を作成(POST)する場合でも更新する(PUT)場合でも、同じ関数を実行します。POST要求とPUT要求の両方が成功します(つまり、「成功」関数を呼び出します)が、PUTコマンドのみがルーターをトリガーし、POST要求は、成功関数をトリガーする間、同じコード行をトリガーしません。
以下は私のイベントコードです。saveUser関数はPUT要求とPOST要求の両方を処理しますが、成功したルーターは、成功したPOST要求からではなく、成功したPUT要求からのみ起動されます(両方がデータベースの更新に成功した場合でも)。
ルーターコードは次のとおりです。
どんな助けでもいただければ幸いです!
ありがとう!
backbone.js - バックボーン js ルート/ビューの関係
Meteor を使用してアプリを構築していますが、ルートとビューの関係を理解するのに苦労しています。ルーターは正常に動作していますが、新しいビューの呼び出しに関する調査を行った後、困惑しています。
App.navigate を使用しますか? 次のように呼びますか:
適切なルーター機能内ですか?これは私が使用している (動作する) コードで、私のアプリにはインデックス ページとアイテム ビューの 2 つのページしかありません。