2016-12-29 10 views
0

私はアプリケーションを簡単な角度ルータサービスからUIルータに変換しています。私は検索フィールドから来るいくつかのパラメータを持つルートを持っています。 Angularで提供されるルーターサービスでは、空の入力フィールドを検索すると、URLは別の機能のためにホームページにリダイレクトされましたが、UI-RouterではURL http://localhost:3000/#/resultPage//1に移動します。UIルータの空のパラメータのURL

私はパラメータで正規表現を使用しようとしましたが、動作しませんでした。私が使用していたコードは、どのように私は偶然に、任意のは、フォームのURLを省略している場合はURLがホーム・ページにリダイレクトすることを確認することができますか?

   $urlRouterProvider.otherwise('/'); 
 

 
       .state("resultpage", { 
 
        url: "/resultPage/{searchParameter:[0-9a-zA-Z]+}/{pageParameter:[0-9]}", 
 
        templateUrl: "templates/resultpage.html", 
 
        controller: "resultController", 
 

 
       })

怒鳴る言及されていますか

答えて

0

直接値の代わりに変数を渡します。 たとえば、url: "/resultPage/:paramOne/:paramTwo"、ここではparamOneおよびparamTwoは、ui-srefから渡されるパラメータです。 コントローラで、依存パラメータ注入に$stateParamsを追加して、urlパラメータを取得します。

app.controller('myCtrl', function($scope, $stateParams, $state){ 
    if(!$stateParams.paramOne || !$stateParams.paramOne){ 
     $state.go('', {}); // redirecting to '/' 
    } 
}) 

ここで、アクセスする状態のステート名を設定します。

例:

<a ui-sref="resultPage({paramOne: {searchParameter:[0-9a-zA-Z]+}, paramTwo: {pageParameter:[0-9]} })" 
+0

お返事ありがとうございます。私はそのコードを使用しようとしましたが、Angularは私に構文エラーを与えています。私が紛失しているものがわからない – user3932437

0

おそらく、このユースケースのために代わりにクエリパラメータを使用する必要があります。ここでは、ドキュメントの最初の段落を確認してください:https://ui-router.github.io/docs/0.3.1/#/api/ui.router.util.type:UrlMatcher

+0

クエリパラメータを使用して何を意味するのかよく分かりません。このリンクは、私の特定の問題については話しません。あなたはさらに詳しく説明できますか? – user3932437

+0

より良いリンクがあります:https://github.com/angular-ui/ui-router/wiki/URL-Routing、 "query parameters"セクションまでスクロールしてください。基本的には、URLマッチングを厳しくしたくない場合に使用することができます。 –

関連する問題