リクエストパラメータでjsp body loadに存在する最初のui-srefリンクにユーザーをナビゲートできますか?ページが読み込まれたときにパラメータ付きのUIビューを読み込むことはできますか?
私のコードを共有しています。
なtest.jsp
<body ng-app="myApp">
<nav class="navbar navbar-inverse">
<ul class="nav navbar-nav navbar-right">
<li class="nav-iem">
<a>${clientId}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" ui-sref="dashboard({clientID: ${clientId}})">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" ui-sref="clientDetail({clientID: ${clientId}})">Profile</a>
</li>
</ul>
</nav>
AngularApp.js
var app = angular.module('myApp', ['ui.router','ui.bootstrap']);
app.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('dashboard', {
url: '/dashboard/:clientID',
resolve: {
getList1: [ 'getService', '$stateParams', function(getService, $stateParams) {
return getService.getData('/mybackend/url1?clientId=' + $stateParams.clientID);
} ]
},
templateUrl: '/dashboard.html',
controller: 'dashboardCtrl'
})
.state('clientDetail', {
url: '/clientDetail/:clientID',
resolve: {
user: [ 'getService', '$stateParams', function(getService,$stateParams) {
return getService.getData('/mybackend/url2?clientId=' + $stateParams.clientID);
} ]
},
templateUrl: '/myProfile.html',
controller : 'myProfileCtrl',
})
私は正常にログインは、その後、私は、バックエンドからのリクエストパラメータとしての私のクライアントIDを受け取ります。しかし、「ダッシュボード」をクリックしない限り、ユーザーはダッシュボードにルーティングされません。
また、私はこのようにそれ以外の場合は使用してみました -
$urlRouterProvider.otherwise(function($injector, $location){
var state = $injector.get('$state');
state.go("dashboard", $location.search());
return $location.path();
});
しかし、渡さstateParamsが未定義であることを示しています。
私はいくつかの基本的な概念が欠けていると確信していますが、私はGoogleで何か手がかりを見つけることができません。誰も私をここで助けてもらえますか?
はい、ダッシュボードをクリックすると正しく動作します。基本的には、test.jspがロードされているときにクリックすることなく、clientIDをパラメータとしてダッシュボードにルーティングする必要があります。 – Miki
あなたは私の与えられた答えから1つのルート状態変化イベントを使用することができます、私は私の答えを更新することができます、私が置くつもりのリンクに従ってください。 – Jigar7521
あなたのリンクを確認しました。私の問題は、$ urlRouterProviderを使用してロードしようとするとclientIDが未定義として渡されるパラメータです。それ以外は、うまくいきます。 – Miki