問題タブ [angular-ui-router-extras]

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 投票する
0 に答える
44 参照

angularjs - Angular : サブモジュールを独立したアプリとして親アプリに実行します

同じAngularモジュールをN回、「親」Angular Appに独立して実行しようとしています。

ui-route と ui-route-extra を使用すると、子アプリを N 回表示できますが、独立して実行されません。サービスをシングルトンとして共有し (子モジュール インスタンスごとに一意のサービス インスタンスが必要です)、状態を変更します ( state.go または ui-sref) を介して特定のインスタンスに、状態を他のすべてのインスタンスに変更します。

これらの子モジュールを独立したアプリとしてコンテナー アプリに実行する方法が見つかりません...

編集:XYの問題を回避するための背景を説明します。

簡単にするために、チャットシステムを構築します。スタンドアロンのチャット Angular アプリを作成しました。誰でもその Web サイトに (ウィジェットとして) 統合できます。現在、開いているすべてのチャット ルームを表示する管理インターフェイスを作成しようとしています。コードの重複を避けるために、ウィジェット アプリを管理インターフェイスに再利用したいと考えています。問題は、各部屋の動作を分離することです。複数のサービス インスタンスが必要で、状態の変更を特定の部屋に適用する必要があります。

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

angularjs - angularでapp.jsからコントローラーメソッドを呼び出す方法

app.jsファイルからコントローラメソッド[getFacility()]を呼び出したい。しかし、以下のコードセグメントを使用すると、次のようなエラーが発生しました

Error: [$injector:unpr] Unknown provider:

ここに私のコントローラーファイルとサービスファイル

app.js

facilityControlelr.js

ここで私がコンソールで得たもの。

「エラー: [$injector:unpr] 不明なプロバイダー: facilityControllerProvider <- facilityController http://errors.angularjs.org/1.5.0/ $injector/unpr?p0=facilityControllerProvider%20%3C-NaNacilityController minErr/<@ https: //ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:68:12 createInjector/providerCache.$injector<@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5 .0/angular.js:4397:19 getService@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:4550:39 createInjector/protoInstanceInjector<@ https://ajax. googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:4402:28 getService@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:4550:39 InjectionArgs@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:4574:58 instantiate@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0 /angular.js:4616:18 $ControllerProvider/this.$gethttps://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:9870:18 z/<.compile/<@ https ://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js:7:23873 invokeLinkFn@ https://ajax.googleapis.com/ajax/ libs/angularjs/1.5.0/angular.js:9492:9 nodeLinkFn@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:8978:11 compositeLinkFn@ https:// ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:8226:13 publicLinkFn@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:8106:30 compilationGenerator/<@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0 /angular.js:8447:20 l@ https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js:7:23072 y/l .compile/https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js:7:23492 $RootScopeProvider/this.$gethttps:// ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:17143:15 v/y.transitionTo/y.transition<@ https://cdnjs.cloudflare.com/ajax/libs/angular- ui-router/0.3.1/angular-ui-router.min.js:7:18793 processQueue@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:15552:28 scheduleProcessQueue/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:15568:27 $RootScopeProvider/this.$gethttps://ajax.googleapis.com/ajax/libs/angularjs/1.5 .0/angular.js:16820:16 $RootScopeProvider/this.$gethttps://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:16636:15 $RootScopeProvider/this.$gethttps ://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:16928:13 done@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular. js:11266:36 completeRequest@ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js:11464:7 requestLoaded@ https://ajax.googleapis.com/ajax/libs/ angularjs/1.5.0/angular.js:11405:9

0 投票する
0 に答える
248 参照

angularjs - ui-router deepstateredirect パラメータ

ajax 呼び出しから deepStateRedirect パラメータを指定する方法はあるのでしょうか? たとえば、ユーザーがパラメーターなしでこの状態になった場合に、解決を使用してデータからロードし、パラメーターを deepStateRedirect に渡すには? そのため、すべてのケースで一定ではない、一種のデフォルト パラメータが用意されています。

例えば:

更新: そのロジック部分を state1 コントローラーに適用し、param1 が空であるかどうかを確認して、そのパラメーター値を ajax 呼び出しでロードできることを知っています。しかし、その場合、 $state.go() を使用すると、ブラウザの戻るボタンを押した後、state1 に戻り、state1 に移動した場所には戻りません。

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

angularjs - angularjsルーターでクエリパラメータ値が更新されませんか?

このように、1 つの定数パラメーター (ページ)、1 つの動的パラメーター (id)、1 つのクエリ パラメーター (日付) で状態を定義しました。

このようなクエリパラメーターを渡して、コントローラーからこの状態を呼び出しています

この状態を呼び出した後、パラメーターを取得しています。

繰り返しますが、このようにクエリ パラメータを渡さずに、コントローラーから同じ状態を呼び出しています。

今、私は以下のstateparamsを取得しています

$stateParams.date は、状態の呼び出し中に渡さなかったため、未定義にする必要があります。しかし、デフォルトでは URL に渡されていました。オプションのパラメータだったので、渡さない間は無視する必要があります。パラメータを渡さずに同じ状態を再度呼び出しながら「未定義」にする方法は? $stateParams.date=null とか別の名前を渡せば反映されると思います。しかし、ルーターのURLを介して渡す必要はありませんか? これを達成する他の方法はありますか?

更新 1: 投稿された回答の後、期待される結果として「{inherit:false}」を使用しました。しかし、状態の呼び出し中に渡されなかったパラメーター値は継承されませんでした。しかし、オプションのパラメーター値だけを継承したくありません。以下のコードを参照してください。

ここでは、パラメータ ID とタイプを動的にする必要があります。id のみの更新された値で呼び出したと仮定すると、型は継承されません。しかし、日付(条件付きParam)の値ではなく、type paramの値を継承したいのです。

console.log($stateParams.type) -> undefined.(ここで、'type' パラメーター値を渡さずに継承する必要があります。とにかくこれを達成するには?

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

angularjs - クエリ パラメータが ui-router で機能しない

クエリ パラメータを含む完全な URL を使用して状態にルーティングし、クエリ パラメータに従ってコントローラでアクションを実行する必要があります。

「/load/:portName/:id」のような変数を含む単純なルーティング URL を使用すると、正常に動作します。

queryparameters を追加しても機能しません: "/load?portName&id"

上記は次の URL でアクセスできるはずです: "/load?portName=TEST&id=343"

HTMLで定義されたルートとコントローラーのコードスニペットを以下に投稿しています。

HTML :

angular および ui-router のバージョン: "angular": "1.4.10"、"angular-sanitize": "1.4.10"、"angular-ui-router": "0.2.10"

URL を使用して route3 を直接ロードしたい: localhost:4000/load?portName=test&id=45 ありがとう

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

angularjs - ビューごとにAngular ui-routerの異なるマスターページレイアウト

私は ui-router の問題に取り組んでいます。

子ページ全体で使用されるメイン マスター ページを構成することができました。子ページのコンテンツも正しく取得されます。

今、私が立ち往生しているポイントは、ログイン/登録ビューです。それらは同じマスター レイアウトの一部ではないため、ページの中央に html コントロールを配置したシンプルなレイアウトになり、他には何もありません。UI にログイン/登録を含める方法を理解するのに苦労しています。 -ルーターロジック。

これは私がこれまでに持っているものです:

ui-router ロジック:

短縮版のマスター ページ (ログイン用ではない) マークアップ:

ログインページ (短縮版):

その新しいレイアウトにリダイレクトする (または既存のマスター ページに組み込む) 適切な方法は何でしょうか?

0 投票する
0 に答える
39 参照

angularjs - 存在しない州への URL のマッピング

私はui-router-extrasを広範囲に使用していますが、それを最大限に活用しているかどうかはまだわかりません。Future Statesから取得した後、実行時にルートを構築していましたAPI。コントローラー内のデータで動的に作成されたケースを解決しようとしui-tabsています。タブが作成されたときにそれらの状態を作成する必要があります。

を押すと、/tabs/タブはあるが何も選択されていない状態が作成され、 を押すと/tabs/1最初のタブが表示されます。

コントローラーで状態を作成してこれを実装しようとしましたが、ヒット/tabs/1してもタブはアクティブになりませんが、状態がまだ作成されていないため、代わりにデフォルトの URL にリダイレクトされます。

どんな助けでも大歓迎です。