タグ付けされた質問 「angular-ui-router」

UI-Routerは、AngularJS Routeの概念を、複雑なアプリケーションUIの状態を管理するためのより一般的な状態の概念に進化させます。特に、ネストされた状態/ビュー階層と複数の名前付きビューを許可します。

14
UI-Routerを使用してページタイトルを設定する
AngularJSベースのアプリを移行して、組み込みルーティングの代わりにui-routerを使用しています。以下のように構成しました .config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/home'); $stateProvider .state('home', { url: '/home', templateUrl : 'views/home.html', data : { pageTitle: 'Home' } }) .state('about', { url: '/about', templateUrl : 'views/about.html', data : { pageTitle: 'About' } }) }); pageTitle変数を使用してページのタイトルを動的に設定するにはどうすればよいですか?組み込みのルーティングを使用して、私は $rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){ $rootScope.pageTitle = $route.current.data.pageTitle; }); 次に示すように、変数をHTMLにバインドします <title ng-bind="$root.pageTitle"></title> ui-routerを使用してフックできる同様のイベントはありますか?「onEnter」関数と「onExit」関数があることに気づきましたが、これらは各状態に関連付けられているようで、コードを繰り返して各状態の$ rootScope変数を設定する必要があります。

6
状態から「…」を解決できませんでした ''
これは私がuiルーターを使用しようとしているのは初めてです。 これが私のapp.jsです angular.module('myApp', ['ionic']) .run(function($ionicPlatform) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { StatusBar.styleDefault(); } }); }) .config(function($stateProvider, $urlRouterProvider){ $urlRouterProvider.otherwise("/index.html"); $stateProvider.state('index', { url: '/' template: "index.html", …


5
$ windowまたは$ locationを使用してAngularJSでリダイレクトする
私が取り組んでいるアプリには、さまざまな状態(ui-routerを使用)が含まれており、一部の状態ではログインが必要ですが、他の状態は公開されています。 ユーザーがログインしているかどうかを有効にチェックするメソッドを作成しました。現在問題があるのは、必要なときに実際にログインページにリダイレクトすることです。ログインページは現在AngularJSアプリ内に配置されていないことに注意してください。 app.run(function ($rootScope, $location, $window) { $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { if (toState.data.loginReq && !$rootScope.me.loggedIn) { var landingUrl = $window.location.host + "/login"; console.log(landingUrl); $window.open(landingUrl, "_self"); } }); }); console.logは、意図したURLを適切に表示します。その次の行では、$ window.openからwindow.location.hrefまでほぼすべてを試しましたが、何を試みてもリダイレクトは発生しません。 編集(解決済み): 問題が見つかりました。 var landingUrl = $window.location.host + "/login"; $window.open(landingUrl, "_self"); 変数landingUrlは 'domain.com/login'に設定され、$ window.location.href(これは私が試したものの1つ)では機能しませんでした。ただし、コードを var landingUrl = …

6
AngularJSのUI-Routerを使用して状態をデフォルトのサブ状態にリダイレクトします
データを表示するタブベースのページを作成しています。AngularJsでUIルーターを使用して状態を登録しています。 私の目的は、ページの読み込み時に1つのデフォルトタブを開くことです。各タブにはサブタブがあり、タブを変更するときにデフォルトのサブタブを開いておきたいのですが。 私はonEnter関数でテストして$state.go('mainstate.substate');いましたが、内部では使用していますが、ループ効果の問題(state.goではサブステートから親ステートを呼び出すなど)が原因で機能しないようです。 $stateProvider .state('main', { url: '/main', templateUrl: 'main.html', onEnter: function($state) { $state.go('main.street'); } }) .state('main.street', { url: '/street', templateUrl: 'submenu.html', params: {tabName: 'street'} }) ここで私はプランカーのデモを作成しました。 今のところ、デフォルトのタブを開いていないことを除いて、すべてが機能します。それがまさに私が必要としていることです。 提案、意見、アイデアをありがとうございます。

8
AngularJS ui-routerステートマシンで[戻る]ボタンを使用するにはどうすればよいですか?
私はui-routerを使用してangularjsシングルページアプリケーションを実装しました。 元々は個別のURLを使用して各州を識別していましたが、これはGUIDがパックされた非友好的なURLになりました。 それで、私は自分のサイトをより単純なステートマシンとして定義しました。状態はURLでは識別されませんが、次のように、必要に応じて単に移行されます。 ネストされた状態を定義する angular .module 'app', ['ui.router'] .config ($stateProvider) -> $stateProvider .state 'main', templateUrl: 'main.html' controller: 'mainCtrl' params: ['locationId'] .state 'folder', templateUrl: 'folder.html' parent: 'main' controller: 'folderCtrl' resolve: folder:(apiService) -> apiService.get '#base/folder/#locationId' 定義済み状態への移行 #The ui-sref attrib transitions to the 'folder' state a(ui-sref="folder({locationId:'{{folder.Id}}'})") | {{ folder.Name }} このシステムは非常にうまく機能し、私はそのクリーンな構文が大好きです。ただし、URLを使用していないため、戻るボタンが機能しません。 きちんとしたui-routerステートマシンを維持しながら、戻るボタン機能を有効にするにはどうすればよいですか?

8
Angular-ui-router:ui-sref-activeおよびネストされた状態
私が使用していますangular-ui-routerし、私のアプリケーションでは、ネストされた状態、と私はまた、ナビゲーションバーを持っています。ナビゲーションバーは手書きでui-sref-active、現在の状態を強調するために使用します。これは2レベルのナビゲーションバーです。 さて、私が入っているときにProducts / Categories、Products(レベル1)とCategories(レベル2)の両方を強調表示したいとします。ただし、を使用ui-sref-activeすると、状態にあるProducts.Categories場合は、その状態のみが強調表示され、は強調表示されませんProducts。 Productsその状態でハイライトする方法はありますか?

6
Angular uiルーターユニットテスト(状態からURL)
Angularuiルーター上に構築されたアプリケーションでルーターの単体テストに問題が発生しています。私がテストしたいのは、状態遷移がURLを適切に変更するかどうかです(後でもっと複雑なテストがありますが、ここから始めます)。 これが私のアプリケーションコードの関連部分です: angular.module('scrapbooks') .config( function($stateProvider){ $stateProvider.state('splash', { url: "/splash/", templateUrl: "/app/splash/splash.tpl.html", controller: "SplashCtrl" }) }) そしてテストコード: it("should change to the splash state", function(){ inject(function($state, $rootScope){ $rootScope.$apply(function(){ $state.go("splash"); }); expect($state.current.name).to.equal("splash"); }) }) Stackoverflow(および公式のUIルーターテストコード)に関する同様の質問は、$ state.go呼び出しを$ applyでラップするだけで十分であることを示唆しています。しかし、私はそれをしました、そして、状態はまだ更新されていません。$ state.current.nameは空のままです。

7
Angularjs $ state新しいタブでリンクを開く
$ state.go関数を使用して「新しいタブでリンクを開く」関数を実装しようとしています。次のようなsmthがあったら素晴らしいでしょう: $state.go('routeHere', { parameter1 : "parameter" }, { reload : true, newtab : true // or smth like target : "_blank" }); AngularJSを使用してそれを行う方法はありますか?

14
IonicFrameworkを使用したログイン/ログアウト時の履歴のクリアとページの再読み込み
Ionicを使用したモバイルアプリケーション開発は初めてです。ログインおよびログアウト時に、データを更新するためにページをリロードする必要がありますが、リロード$state.go('mainPage')せずにユーザーをビューに戻します。その背後にあるコントローラーが呼び出されることはありません。 履歴をクリアしてIonicで状態をリロードする方法はありますか?

11
(Angular-ui-router)解決プロセス中に読み込みアニメーションを表示する
これは2つの部分からなる質問です。 $ stateProvider.state()内のresolveプロパティを使用して、コントローラーをロードする前に特定のサーバーデータを取得しています。このプロセス中にロードアニメーションを表示するにはどうすればよいですか? resolveプロパティも利用する子状態があります。問題は、ui-routerが、コントローラーをロードする前にすべての解決策を確定したいように見えることです。子のすべての解決を待たずに、解決が解決されたら親コントローラーをロードする方法はありますか?これに対する答えは、おそらく最初の問題も解決するでしょう。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.