কৌনিক 2 এ ইউআরএল থেকে কীভাবে প্যাকেজগুলি পাবেন?


237

আমি কৌণিক 2.0.0-বিটা 7 ব্যবহার করি। কোনও উপাদান যখন কোনও পথে লোড করা হয় /path?query=value1তখন এটি পুনঃনির্দেশিত হয়/path । কেন জিইটি প্যারামগুলি সরানো হয়েছিল? আমি কীভাবে পরামিতিগুলি সংরক্ষণ করতে পারি?

রাউটারগুলিতে আমার একটি ত্রুটি আছে। আমার যদি প্রধান রুট থাকে তবে

@RouteConfig([
  {
      path: '/todos/...',
      name: 'TodoMain',
      component: TodoMainComponent
  }
])

এবং আমার সন্তানের পথটি

@RouteConfig([
  { path: '/', component: TodoListComponent, name: 'TodoList', useAsDefault:true },
  { path: '/:id', component: TodoDetailComponent, name:'TodoDetail' }
])

তাহলে আমি টডোলিস্ট কম্পোনেন্টে প্যারামগুলি পেতে পারি না। আমি পেতে সক্ষম

params("/my/path;param1=value1;param2=value2") 

তবে আমি ক্লাসিক চাই

query params("/my/path?param1=value1&param2=value2")

1
আপনি কিভাবে @RouteConfigএই জন্য নির্দিষ্ট path?
পঙ্কজ পার্কার

আমি ত্রুটি পেয়েছি। আমার প্রধান রুট এবং শিশু পথ রয়েছে এবং যদি আমার main পথ: '/ todos / ...' এর মতো প্রধান রুট থাকে তবে নাম: 'টডোমাইন', উপাদান: TodoMainComp घटक} এবং শিশু রুট {পথ: '/', উপাদান: টোডলিস্ট কম্পোনেন্ট, নাম: 'টডোলিস্ট', ইউএসএস ডিফল্ট: সত্য}, এটি কোনও কাজ নয় এবং কোয়েরি প্যারাম ছাড়াই ইউআরএলে পুনঃনির্দেশ।
ফায়ারজিএম

উত্তর:


412

এর একটি দৃষ্টান্ত ইনজেকশনের দ্বারা ActivatedRouteএক একটি সহ observables, বিভিন্ন সাবস্ক্রাইব করতে পারেন queryParamsএবং একটি paramsলক্ষণীয়:

import {Router, ActivatedRoute, Params} from '@angular/router';
import {OnInit, Component} from '@angular/core';

@Component({...})
export class MyComponent implements OnInit {

  constructor(private activatedRoute: ActivatedRoute) {}

  ngOnInit() {
    // Note: Below 'queryParams' can be replaced with 'params' depending on your requirements
    this.activatedRoute.queryParams.subscribe(params => {
        const userId = params['userId'];
        console.log(userId);
      });
  }

}

আনসস্ক্রাইজিং সম্পর্কিত একটি নোট

@ রিটো এবং @ কোডফ0rmer বেশ সঠিকভাবে উল্লেখ করেছিলেন যে সরকারী ডক্স অনুসারে, unsubscribe()উপাদান onDestroy()পদ্ধতির অভ্যন্তরের অভ্যন্তরীণ পদ্ধতির অভ্যন্তরটি এই ক্ষেত্রে অপ্রয়োজনীয়। এটি আমার কোড নমুনা থেকে সরানো হয়েছে। ( এই টিউটোরিয়ালে নীল সতর্কতা বাক্স দেখুন )


2
আমি আরও সাবস্ক্রিপশনটি প্রতিশ্রুতি দিয়ে প্রতিস্থাপন করার পরামর্শ দিচ্ছি - এই বিশেষ ক্ষেত্রে। this.activatedRoute.params.toPromise () .পথ (প্রতিক্রিয়া => ...) .চ্যাস (ত্রুটি => ...);
ডিসেম্বর

আমি কোথায় "অ্যাক্টিভেটরউট" পাস করতে পারি?
মিচালি 12

20
অফিসিয়াল ডকুমেন্টেশন থেকে: আমার কি সাবস্ক্রাইব করা দরকার? The Router manages the observables it provides and localizes the subscriptions. The subscriptions are cleaned up when the component is destroyed, protecting against memory leaks, so we don't need to unsubscribe from the route params Observable.
রিটো

কৌণিক সাবস্ক্রিপশন (বা প্রতিশ্রুতি) গুলি ছড়িয়ে না দিয়ে পুনঃনির্দেশ করে। আমি টোকেনের সাহায্যে মূল OAUth কলব্যাক দেখতে পাব, কিন্তু তারপরে এটি কোয়েরি প্যারাম এবং কনসোল.লগ (প্যারাম) ছাড়াই রুটে পুনঃনির্দেশ করে just
ফ্ল্যাভরস্কেপ

1
@ সোবহান, হ্যাঁ পার্থক্য আছে। স্যুইচম্যাপ অপারেটর একটি পর্যবেক্ষণযোগ্য ফেরত দেয় যখন সাবস্ক্রাইব অপারেটর পর্যবেক্ষককে (আমাদের উপাদানটিকে) অবশেষে পর্যবেক্ষণযোগ্য দ্বারা নির্গত আইটেমগুলি দেখতে দেয়। সুতরাং দস্তাবেজে সুইচম্যাপ নিয়োগের 2 টি উদাহরণ রয়েছে। 1) হেরোগুলির অনুরোধ যুক্ত করতে তারা সুইচম্যাপ ব্যবহার করেছে। সাবস্ক্রাইবের বিপরীতে সুইচম্যাপটি নিশ্চিত করবে যে কোনও নায়ককে পুনরুদ্ধার করার সময় ব্যবহারকারীর রুটটিতে পুনরায় নেভিগেট করা উচিত কিনা request 2) একটি অ্যাসিঙ্ক পাইপ ব্যবহার করা হয়। অ্যাসিঙ্ক পাইপগুলি একটি পর্যবেক্ষণযোগ্য গ্রাস করে, সুতরাং কোনওটিকে অবশ্যই সাবস্ক্রাইব করা উচিত নয় (অ্যাসিঙ্ক পাইপটি এটি আপনার জন্য করবে)।
স্টিফেন পল

103

যখন কোনও URL টি এই http://stackoverflow.com?param1=value পছন্দ করে

কোড অনুসরণের মাধ্যমে আপনি প্যারাম 1 পেতে পারেন:

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, Params } from '@angular/router';

@Component({
    selector: '',
    templateUrl: './abc.html',
    styleUrls: ['./abc.less']
})
export class AbcComponent implements OnInit {
    constructor(private route: ActivatedRoute) { }

    ngOnInit() {
        // get param
        let param1 = this.route.snapshot.queryParams["param1"];
    }
}

2
এর অর্থ কি এই যে আপনাকে আর রুটকফিগ পথে "/: id" যুক্ত করার দরকার নেই? কারণ আমি যখন এটি ব্যবহার করি তখন আমি "অপরিজ্ঞাত" হয়ে যাই তাই আমার এখনও কোথাও ত্রুটি থাকতে হবে
অ্যাক্সলে

2
গ্রেট। এটি আমি খুঁজছিলাম কারণ আমার ডায়নামিক সার্ভার ইউআরএল থেকে সরাসরি প্যারামগুলি পড়তে হবে। আমি নেভিগেট ব্যবহার করতে পারি না।
দ্য.বিয়ার

37

যদিও প্রশ্নটি সংস্করণ বিটা 7 নির্দিষ্ট করে , এই প্রশ্নটি কৌনিক 2 ক্যোয়ারী প্যারামিটারের মতো সাধারণ বাক্যাংশগুলির জন্য গুগলে শীর্ষ অনুসন্ধান ফলাফল হিসাবেও আসে । যে কারণে এখানে নতুন রাউটারের জন্য একটি উত্তর রয়েছে (বর্তমানে আলফা in এ )।

প্যারামগুলি পড়ার পদ্ধতি নাটকীয়ভাবে পরিবর্তিত হয়েছে। প্রথমে আপনাকে Routerআপনার কনস্ট্রাক্টর প্যারামিটারগুলিতে ডাকা নির্ভরতা ইনজেক্ট করতে হবে :

constructor(private router: Router) { }

এবং তারপরে আমরা আমাদের ngOnInitপদ্ধতিতে ক্যোয়ারী প্যারামিটারগুলি সাবস্ক্রাইব করতে পারি (কনস্ট্রাক্টরও ঠিক আছে, তবে ngOnInitপরীক্ষার জন্য এটি ব্যবহার করা উচিত)

this.router
  .routerState
  .queryParams
  .subscribe(params => {
    this.selectedId = +params['id'];
  });

এই উদাহরণে আমরা ইউআরএল থেকে কোয়েরি পরম আইডিটি পড়ি example.com?id=41

এখনও লক্ষ্য করার মতো কয়েকটি জিনিস রয়েছে:

  1. paramsপছন্দ মতো সম্পত্তি অ্যাক্সেস করা params['id']সর্বদা একটি স্ট্রিং দেয় এবং এটির সাথে উপসর্গ রেখে সংখ্যায় রূপান্তর করা যায় +
  2. ক্যোয়ারী প্যারামগুলি পর্যবেক্ষণযোগ্য করে আনার কারণ হ'ল এটি কোনও নতুন লোড না করে একই উপাদান উপাদানটিকে পুনরায় ব্যবহারের অনুমতি দেয়। প্রতিবার ক্যোয়ারী পরম পরিবর্তন করা হয়, এটি এমন একটি নতুন ইভেন্টের কারণ ঘটবে যার জন্য আমরা সাবস্ক্রাইব করে রেখেছি এবং সুতরাং আমরা সে অনুযায়ী পরিবর্তনগুলিতে প্রতিক্রিয়া জানাতে পারি।

একাধিক পরামিতি একই সদস্যের কাছে যাওয়ার কোনও উপায় আছে কি? উদাহরণস্বরূপ, আমি 'আইডি' বা 'সনাক্তকরণ' এর মধ্যে এই নির্বাচন করতে চাই se
ফান্ডিনহ্লান

@ ফান্ডিনহ্লান: আচ্ছা, এটি আসলে কৌণিক ২ সম্পর্কিত কোনও প্রশ্ন নয়। এটি অবশ্যই কার্যকর করা যেতে পারে তবে আপনার যুক্তিটি নিজেরাই সংজ্ঞায়িত করতে হবে। মূলত আপনি যা করতে চান তা হ'ল প্রথমে কীটি সংজ্ঞায়িত করা হয়েছে কিনা তা যাচাই করে কেবল তারপরে মানটি পড়ুন এবং যদি তা না হয় তবে অন্য কী দিয়ে মানটি পড়ুন। এটি এমন কিছু দিয়ে অর্জন করা যেতে পারে if (params.hasOwnProperty('id')) { this.selectedId = params['id'] } else { this.selectedId = params['identification']}
রূপ হাকুলিনেন

হ্যাঁ আমি এমন কিছু করে শেষ করেছি। আমি কেবল ভেবেছিলাম এখানে কিছু "বিল্ট ইন" উপায়ে থাকবে: this.selectedId = + params ['id']; this.selectedId = + params ['সনাক্তকরণ']; অবশ্যই এটি কোনও অর্থবোধ করে না এবং কাজ করে না।
ফান্ডিনহ্লান

28

আমি @ স্টিভপুলের উত্তরটি সত্যিই পছন্দ করেছি তবে আমরা বহিরাগত সাবস্ক্রাইব / সদস্যতা ছাড়াই কল ছাড়াই এটি করতে পারি।

import { ActivatedRoute } from '@angular/router';
constructor(private activatedRoute: ActivatedRoute) {
    let params: any = this.activatedRoute.snapshot.params;
    console.log(params.id);
    // or shortcut Type Casting
    // (<any> this.activatedRoute.snapshot.params).id
}

7
অবশ্যই এইটির সাথে সাবধানতাটি হ'ল এটি প্রাথমিক মান হবে এবং পরবর্তী পরিবর্তনগুলি প্রতিফলিত হবে না। সুতরাং আপনি যদি আপনার যুক্তির অংশ হিসাবে প্রোগ্রামগতভাবে ইউআরএল প্যারামিটারগুলি পরিবর্তন করেন তবে এমন কিছু যা আপনার সম্পর্কে সচেতন হওয়া দরকার
অ্যাম্বিডেস্টারস

এটি কৌণিকের পরবর্তী সংস্করণগুলির সাথে পরিবর্তিত হয়েছে কিনা তা নিশ্চিত নই তবে আমি এখন এটিকে দেখতে পেয়েছি activঅ্যাকটিভেটেড রউট.স্ন্যাপশট.কোয়ারিপ্যারামস
মাইকেল

21

ক্যোয়ারী প্যারামগুলি প্রেরণ করতে

import { Router } from '@angular/router';
this.router.navigate([ '/your-route' ], { queryParams: { key: va1, keyN: valN } });

ক্যোয়ারী প্যারামগুলি গ্রহণ করতে

import { ActivatedRoute } from '@angular/router';
this.activatedRoute.queryParams.subscribe(params => {
    let value_1 = params['key'];
    let value_N = params['keyN'];
});

সরকারী উত্স


পড়া ভাল কাজ করে। তবে এটি কেস সংবেদনশীল। কীভাবে আমরা এটিকে সংবেদনশীল করতে পারি?
অ্যানি

12

হাই, আপনি URL অনুসন্ধান অনুসন্ধানগুলি ব্যবহার করতে পারেন, আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন

আমদানি:

import {URLSearchParams} from "@angular/http";

এবং ফাংশন:

getParam(){
  let params = new URLSearchParams(window.location.search);
  let someParam = params.get('someParam');
  return someParam;
}

বিজ্ঞপ্তি : এটি সমস্ত প্ল্যাটফর্মের দ্বারা সমর্থিত নয় এবং কৌনিক ডকস দ্বারা "অভিজ্ঞ" অবস্থায় রয়েছে বলে মনে হয়


2
এটি আমার পক্ষে কাজ করে না। আমি খুঁজে পেয়েছি যে উইন্ডো.লোকেশন.সার্কে ক্যোরিস্ট্রিং প্যারামিটারগুলির শীর্ষস্থানীয় প্রশ্ন চিহ্ন রয়েছে। সুতরাং, প্রথম প্যারামিটারের কীটিতে প্রশ্ন চিহ্নটি পুনরায় চাপানো হবে।
এজে মরিস

: এজে মরিস, আপনার সমস্যাটি কাছাকাছি পেতে if (window.location.search.indexOf('?') == 0){ normalizedQueryString = window.location.search.substring(1); } else { normalizedQueryString = window.location.search; } let params = new URLSearchParams(normalizedQueryString);
সব্যসাচীর ন্যায় গুণবিশিষ্ট

ইউআরএল সার্চপ্যারামগুলি এটি হ্রাস পেয়েছে। এখন আপনি এটি অ্যাক্টিভেটেডরউটের সাহায্যে করতে পারেন।
রবার্ট ব্লাস্কো ভিলাররোয়া

7

প্রথমে, আমি Angular2 এর সাথে কাজ করে যা পেয়েছি তা হ'ল ক্যোরি স্ট্রিং সহ ইউআরএল হবে /path;query=value1

আপনি যে উপাদানটি ব্যবহার করেন এটিতে এটি অ্যাক্সেস করতে এটি হ'ল, তবে এখন একটি কোড ব্লক অনুসরণ করা হয়েছে:

    constructor(params: RouteParams){
    var val = params.get("query");
    }

আপনি যখন উপাদানটি লোড করবেন তখন কেন এটি মুছে ফেলা হবে, এটি ডিফল্ট আচরণ নয়। আমি একটি পরিষ্কার পরীক্ষা প্রকল্পে সুনির্দিষ্টভাবে পরীক্ষা করেছি এবং পুনঃনির্দেশিত বা পরিবর্তন হয়নি। এটি কি কোনও ডিফল্ট রুট বা অন্য কিছু যা রাউটিংয়ের জন্য বিশেষ?

এঙ্গুলার 2 টিউটোরিয়াল-এ https://angular.io/docs/ts/latest/guide/router.html#!# ক্যোয়ারী-প্যারামিটারে কোয়েরি স্ট্রিং এবং প্যারামগুলি সহ রাউটিং সম্পর্কে পড়ুন


আমি "; প্যারাম 1 = মান 1; প্যারাম 2 = মান 2" এর মতো প্যারাম ব্যবহার করতে পারি না, এই লিঙ্কটি অন্য সাইটে উত্পন্ন হয়েছে এবং "উদাহরণ.com/auth?code_for_auth=askjfbkajdsbfksajdf"
ফায়ার জিএম

এই মুহুর্তে অ্যাঙ্গুলার 2 এ যেভাবে রাউটিংটি সেট আপ করা হয়েছে, তা সত্যিই সম্ভব বলে আমি মনে করি না। শিশু রাউটিং ম্যাট্রিক্স ইউআরএলের উপর নির্ভরশীল না হওয়ায় এক ধরণের কাজের প্রয়োজন হতে চলেছে। আমি হিসাবে কমপক্ষে জানি। আমি এটিকে আমার ওয়েবসার্ভারে বাধা দেব এবং তাদের হ্যাক হিসাবে রূপান্তর করবো,
চুষে ফেলে

লিঙ্কিং সাইটকে তাদের ইউআরএল পরিবর্তন করতে বলার সম্ভাবনা আপনার নেই?
নামিরনা

1
না, তবে আমি সমস্যাটি কেবল ম্যানুয়ালি
প্লেস করে লোকেশন.পাথ

4
এই সমাধান অবমূল্যায়ন!

7

অ্যাক্টিভেটরউউট ব্যবহার করে ইউআরএল পাস করার সময় আপনি কোয়েরি প্যারামিটারগুলি পেতে পারেন:

url: - http: /domain.com? test = abc

import { Component } from '@angular/core';
import { ActivatedRoute }     from '@angular/router';

@Component({
  selector: 'my-home'
})
export class HomeComponent {

  constructor(private sharedServices : SharedService,private route: ActivatedRoute) { 
    route.queryParams.subscribe(
      data => console.log('queryParams', data['test']));
  }

}

7

অবজেক্ট হিসাবে ইউআরএল পরম পান।

import { Router } from '@angular/router';
constructor(private router: Router) {
    console.log(router.parseUrl(router.url));
}

2

আপনি যদি একবার কেবল ক্যোয়ারি প্যারামিটার পেতে চান তবে সবচেয়ে ভাল উপায় হ'ল টেক মেথড ব্যবহার করুন যাতে আপনার সদস্যতা বাতিল হওয়ার বিষয়ে চিন্তা করার দরকার নেই। এখানে সরল স্নিপেট:

constructor(private route: ActivatedRoute) {
  route.snapshot.queryParamMap.take(1).subscribe(params => {
     let category = params.get('category')
     console.log(category);
  })
}

বিঃদ্রঃ: আপনি যদি ভবিষ্যতে প্যারামিটার মানগুলি ব্যবহার করতে চান তবে (1) টেক সরান ।


2

এখন এটা:

this.activatedRoute.queryParams.subscribe((params: Params) => {
  console.log(params);
});

1
এই কোড স্নিপেটের জন্য আপনাকে ধন্যবাদ, যা কিছু সীমিত স্বল্পমেয়াদী সহায়তা সরবরাহ করতে পারে। একটি সঠিক ব্যাখ্যা কেন এটি সমস্যার একটি ভাল সমাধান এবং এটি ভবিষ্যতের পাঠকদের আরও অন্যান্য অনুরূপ প্রশ্নের সাথে আরও দরকারী করে তুলে ধরে তার দীর্ঘমেয়াদী মানকে ব্যাপকভাবে উন্নত করবে। আপনার অনুমানগুলি সহ কিছু ব্যাখ্যা যুক্ত করতে দয়া করে আপনার উত্তরটি সম্পাদনা করুন
শন সি।

1

আমি আশা করি এটি অন্য কাউকে সাহায্য করবে।

উপরের প্রশ্নে বলা হয়েছে যে পৃষ্ঠাটি পুনঃনির্দেশিত হওয়ার পরে ক্যোয়ারী প্যারাম মানটি প্রয়োজন এবং আমরা ধরে নিতে পারি যে স্ন্যাপশটের মান (অবলম্বনযোগ্য বিকল্প) যথেষ্ট হবে।

অফিসিয়াল ডকুমেন্টেশন থেকে এখানে কেউই snapshot.paramMap.get সম্পর্কে উল্লেখ করেনি ।

this.route.snapshot.paramMap.get('id')

সুতরাং প্রেরণের আগে এটি পুনঃনির্দেশকরণ উপাদানটি প্রেরণে এটি যুক্ত করুন:

import { Router } from '@angular/router';

তারপর উভয় হিসাবে পুনরায় সরাসরি ( এখানে ডকুমেন্টেড ):

this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);

বা সহজভাবে:

this.router.navigate(['/heroes', heroId ]);

এখানে নথিবদ্ধ হিসাবে আপনি আপনার রাউটিং মডিউলে এটি যুক্ত করেছেন তা নিশ্চিত করুন :

 { path: 'hero/:id', component: HeroDetailComponent }

এবং অবশেষে, আপনার উপাদানটিতে যা ক্যোয়ারী প্যারামটি ব্যবহার করা দরকার

  • আমদানি যুক্ত করুন ( এখানে ডকুমেন্টেড ):

    import { Router, ActivatedRoute, ParamMap } from '@angular/router';
  • চালিত রুট ইনজেক্ট করুন

(ডকুমেন্টেশনগুলি সুইচম্যাপও আমদানি করে এবং রাউটার এবং হিরো সার্ভিসকেও সংক্রামিত করে - তবে এগুলি কেবল পর্যবেক্ষণযোগ্য বিকল্পের জন্য প্রয়োজন - আপনি যখন আমাদের ক্ষেত্রে স্ন্যাপশটের বিকল্প ব্যবহার করেন তখন তাদের প্রয়োজন হয় না):

    constructor(
      private route: ActivatedRoute
    ) {}
  • এবং আপনার প্রয়োজনীয় মানটি পান ( এখানে ডকুমেন্টেড ):

    ngOnInit() {
      const id = this.route.snapshot.paramMap.get('id');
    }

দ্রষ্টব্য: যদি আপনি কোনও বৈশিষ্ট্য মডিলে রুটিং-মডিউল যুক্ত করেন (ডকুমেন্টেশনে দেখানো হয়েছে) অ্যাপ্লিকেশনগুলিতে এই বিষয়টি নিশ্চিত করুন O অন্য বৈশিষ্ট্যর রুটগুলি বোঝা যাবে না (তারা যেমন {পথের পরে আসবে: '**', পুনর্নির্দেশ: '/ পাওয়া যায়নি'} এবং আপনি কেবল খুঁজে পাওয়া যায়নি বার্তাটি দেখতে পাবেন)।


1

আপনাকে কেবল কন্সট্রাক্টরে অ্যাক্টিভেটরউট ইনজেক্ট করতে হবে এবং তারপরে তার উপর কেবল প্যারাম বা ক্যোয়ারপ্যারাম অ্যাক্সেস করতে হবে

constructor(private route:ActivatedRoute){}
ngOnInit(){
        this.route.queryParams.subscribe(params=>{
        let username=params['username'];
      });
 }

কিছু ক্ষেত্রে এটি এনজিওনিটিতে কিছুই দেয় না ... কারণ প্যারামগুলি আরম্ভ করার আগে আর ডি কল করার কারণে আপনি ফাংশন ডাব্বনটাইম (1000) দ্বারা কিছু সময়ের জন্য অপেক্ষা করার জন্য পর্যবেক্ষণযোগ্যকে জিজ্ঞাসা করে এটি অর্জন করতে পারেন

যেমন =>

 constructor(private route:ActivatedRoute){}
    ngOnInit(){
            this.route.queryParams.debounceTime(100).subscribe(params=>{
            let username=params['username'];
          });
     }

ডিবাউনটাইম () অন্য উত্স নির্গমন ব্যতীত নির্দিষ্ট সময়সীমা পার হয়ে যাওয়ার পরে পর্যবেক্ষণযোগ্য উত্স থেকে একটি মান নির্ধারণ করে


0

আপনি রাউটারস্টেট থেকে কোনও পরামিতি পেতে পারেন না যদি এটি রুটে সংজ্ঞায়িত না করা হয়, সুতরাং আপনার উদাহরণস্বরূপ, আপনাকে ক্যোয়ারস্ট্রিংকে পার্স করতে হবে ...

আমি যে কোডটি ব্যবহার করেছি তা এখানে:

let re = /[?&]([^=#&]+)=([^&#]*)/g;
let match;
let isMatch = true;
let matches = [];
while (isMatch) {
    match = re.exec(window.location.href);
    if (match !== null) {
        matches[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
        if (match.index === re.lastIndex) {
            re.lastIndex++;
        }
    }
    else {
        isMatch = false;
    }
}
console.log(matches);


0

প্রশ্ন এবং পথ (কৌনিক 8)

আপনার যদি https://myapp.com/owner/123/show?height=23 এর মতো url থাকে তবে ব্যবহার করুন

combineLatest( [this.route.paramMap, this.route.queryParamMap] )
  .subscribe( ([pathParams, queryParams]) => {
    let ownerId = pathParams.get('ownerId');    // =123
    let height  = queryParams.get('height');    // =height
    // ...
  })

হালনাগাদ

আপনি যখন ব্যবহার করেন this.router.navigate([yourUrl]);এবং আপনার ক্যোয়ারি প্যারামিটারগুলি yourUrlস্ট্রিংয়ের সাথে এম্বেড করা থাকে তখন কৌণিক একটি URL এনকোড করে এবং আপনি https://myapp.com/owner/123/show%3Fightight3323 এর মতো কিছু পান - এবং উপরের সমাধানটি ভুল ফল দেবে ( ক্যোয়ারীপ্যারামগুলি খালি থাকবে, এবং ক্যোয়ারী প্যারামগুলি যদি শেষের দিকে থাকে তবে শেষের পথে পারমায় আটকানো যেতে পারে)। এই ক্ষেত্রে গৌণ প্রণালী পরিবর্তন এই

this.router.navigateByUrl(yourUrl);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.