2017-07-12 8 views
1

ルータリンク内の空のクエリパラメータは無視されますか?私は、次の変数を持って、角活字体

inputCity; 
inputGuestNumber; 
inputCapacitySelected; 
inputCuisineSelected; 
inputPrivacySelected; 
inputVenueTypeSelected; 
inputAmenitiesSelected; 
inputNeighborhoodSelected; 

これらの値は、ユーザがフォームに入力した内容に応じ定義されていない可能性があります。

クエリパラメータセットを持つrouter.navigate関数があります。それらが指している変数が定義されていない場合、または空の場合はクエリのパラメータはどうなりますか?

onSubmit(){ 
    this.router.navigate(['/venue-list', this.inputCity], { 
     queryParams:{ 
      guestCount: this.inputGuestNumber, 
      countOption: this.inputCapacitySelected, 
      cuisineSelected:this.inputCuisineSelected, 
      privacySelected:this.inputPrivacySelected, 
      venueTypeSelected: this.inputVenueTypeSelected, 
      amenitiesSelected: this.inputAmenitiesSelected, 
      neighborhoodSelected: this.inputNeighborhoodSelected 
     } 
    }); 

ありがとう!

答えて

0

queryParamsは、オプションのパラメータであり、コンポーネントへのルートを決定する必要はありません。あなたは上記のようなqueryParamsに合格し、自分の変数のいくつかは未定義であるなら、それは無視されることはありません。この

localhost:3000/venue-list/:inputCity?guestCount=2&countOption=undefined&cuisineSelected=anyvalue&privacySelected=undefined 

空のクエリのparamsのようなルートを要求します。 ので、今とき、それはオープン会場リストコンポーネント

ngOnInit() { 
    this.sub = this.route 
     .queryParams 
     .subscribe(params => { 
     this.guestcount = +params['guestCount']; 
     this.countoption = +params['countOption'];<- in this.countoption you will get undefined 
     }); 
    } 

あなたがそれらのいくつかの包みのparamsを照会すべてにいくつかのデフォルト値を設定している場合、この

subscribe(params => { 
    // Defaults to 0 if no query param provided. 
    this.guestcount = +params['guestCount'] || 0; 
    this.countoption = +params['countOption'] || default_value; 
    }); 

または使用する場合のように定義されていないほうが良いでしょう不定検出条件

関連する問題