1

2 つの ID 値を受け取る必要があるコントローラーがあります。1 つの id 値はベンダーを識別し、2 番目の id 値はイベント (eventId および VendorId) を識別します。

私の現在の状態はそのようなものです。

 .state('/vendordetail', {
         url: '/vendordetail/:vendorId',
         templateUrl: '/home/vendordetail',
         controller: 'VendorDetailController',
         resolve: {
             vendorId: ['$stateParams', function ($stateParams) {
                 return $stateParams.vendorId;
             }],
             vendorPreload: ['$stateParams', 'vendorDetailRepo', '$state', function ($stateParams, vendorDetailRepo, $state) {
                 if ($stateParams.vendorId != "")
                     return vendorDetailRepo.get({ id: $stateParams.vendorId }).$promise;
             }]
         }

     });

現時点では、vendorId を取得できます。しかし、状態に eventId を含めたいと思います。2 番目のパラメーター (eventId) を取るように状態を変更するのを手伝ってくれる人はいますか?

ありがとうございました。

4

2 に答える 2

5

まず、正当な理由がない場合は、パラメーターを url-parameters として配置することをお勧めします。

このアドバイスに従うと、状態は次のようになります。

state('/vendordetail', {
     url: '/vendordetail?:vendorId:eventId',
     templateUrl: '/home/vendordetail',
     controller: 'VendorDetailController',
     resolve: {
         vendorId: ['$stateParams', function ($stateParams) {
             return $stateParams.vendorId;
         }],
         eventId: ['$stateParams', function ($stateParams) {
             return $stateParams.eventId;
         }],
         vendorPreload: ['$stateParams', 'vendorDetailRepo', '$state', function ($stateParams, vendorDetailRepo, $state) {
             if ($stateParams.vendorId != "")
                 return vendorDetailRepo.get({ id: $stateParams.vendorId }).$promise;
         }]
     }

 });

ちなみに、パラメータを解決する必要はありません。$stateParams をコントローラに挿入するだけです。

于 2015-07-23T19:30:18.940 に答える
0
url: '/vendordetail/:vendorId'/:eventId,

解決と url 部分に vendorId がある理由がわかりません。$stateParams がコントローラーに挿入されている限り、その方法でアクセスできます。

于 2015-07-23T19:32:28.270 に答える