2016-10-14 6 views
0

角度アプリケーションにパラメータを追加しようとしています。実際に私のアプリは動的に呼び出されます: - - 私の$stateProviderでこのstateを処理するためにangularjsの状態 'url`にパラメータを追加するには

"https://abc.ss.com/xx/sn=1234568505 

私はこのようにしようとしています:

.state('serialCreateCase', { 
     url: '/sn=*', //but not working 
     templateUrl:'abxy.html', 
     controller: 'controllersss as ctrl', 
     } 
     }) 

しかし、私のURLは、ページをデフォルトにリダイレクトキャプチャされていません。 =パラメータを追加するにはどうすればよいですか?あなたはこの

state('serialCreateCase', { 
url: '/xx?sn', 
templateUrl: 'abxy.html', 
controller: 'controllersss as ctrl', 
} 
}) 

のようなのparamsを追加することができ

答えて

2

はこれを試してみてくださいされます:あなたが期待しているURLと一致している必要があり

.state('serialCreateCase', { 
    url: '^/sn={id}', 
    params: { 
    id: {} 
    }, 
    templateUrl:'abxy.html', 
    controller: 'controllersss as ctrl', 
} 

編集:回答が必要なパラメータに変更されました。

+0

'id'がなくても' http:// localhost:3000/sn = ' - は有効です。しかし、私は強制的にIDを要求したいと思います – 3gwebtrain

+0

'id'には特殊文字を入れないでください。 – 3gwebtrain

+0

必要なパラメータ値を含めるように答えを更新しました。 – rrd

-2

状態refは

<a ui-sref="serialCreateCase({ sn: 1234568505 })">URL</a> 
+0

例えば私はlocalhostに: 'localhostを:3000/SN = 12345' - 扱いする必要があります。私はあなたのことを試しましたが、まだデフォルトページにしています – 3gwebtrain

0

あなたはこれを試してみました:http://benfoster.io/blog/ui-router-optional-parameters

クエリパラメータ

だから、クエリパラメータがUIルータの$ stateParamsオブジェクトにマッピングされ、あなたがあなたの状態構成のURLテンプレートでそれらを宣言する必要があります:

state('new-qs', { 
    url: '/new?portfolioId', 
    templateUrl: 'new.html', 
    controller: function($scope, $stateParams) { 
    $scope.portfolioId = $stateParams.portfolioId; 
    } 
}) 

次に、ui-sref属性を使用してこの状態へのリンクを作成できます。

<a ui-sref="new-qs({ portfolioId: 1 })">New (query string)</a> 

これは/ new?portfolioId = 1に移動します。

あなたは複数のオプションのパラメータを持っている場合は、&で区切り:

state('new-qs', { 
    url: '/new?portfolioId&param1&param2', 
    templateUrl: 'new.html', 
    controller: function($scope, $stateParams) { 
    $scope.portfolioId = $stateParams.portfolioId; 
    $scope.param1 = $stateParams.param1; 
    $scope.param2 = $stateParams.param2; 
    } 
}) 
関連する問題