Javascript 声明变量时Angular App中的语法冲突

Javascript 声明变量时Angular App中的语法冲突,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个函数,我用它来处理我的Angular应用程序中的分页。它按预期工作-我订阅url参数,然后使用路由器根据这些参数进行导航,同时将页码作为传入值。一个参数是指示筛选器当前是否处于活动状态的布尔值,第二个参数是筛选器本身的值 这是工作版本: public paginate(page) { this.route.params.subscribe( (params: any) => { this.pn_location_e = params['pn_location

我有一个函数,我用它来处理我的Angular应用程序中的分页。它按预期工作-我订阅url参数,然后使用路由器根据这些参数进行导航,同时将页码作为传入值。一个参数是指示筛选器当前是否处于活动状态的布尔值,第二个参数是筛选器本身的值

这是工作版本:

public paginate(page) {
  this.route.params.subscribe(
    (params: any) => {
      this.pn_location_e = params['pn_location_e'];
      this.pn_location_v = params['pn_location_v'];
    }
  );

  this.router.navigate(
    ['/clients', {
      page: page,
      pn_location_e: this.pn_location_e,
      pn_location_v: this.pn_location_v,
    }]);

  let fn = resRecordsData => {
    this.records = resRecordsData;
    let data = resRecordsData.data;
  };

  this.dataService.filterByInput(
    page - 1, this.pagesize, this.location, fn);
}
以上一切都按预期进行

然而,最近一位同事将过滤器语法从使用“uu”改为使用“.”。所以它是这样的:

this.pn_location_e = params['pn_location_e'];
为此:

this.pn_location.e = params['pn_location.e'];
问题是,在我的角度分量中,我不能用这种语法初始化变量。当我尝试这样初始化时:

pn_location.e
。。。我得到一个语法错误。我也尝试过这样做
pn_location['.e']
,但也不起作用(还会导致语法错误)


有办法解决这个问题吗?或者我们只需要返回到对过滤器参数使用下划线语法吗?

在属性名称周围加引号将允许赋值:

public paginate(page) {
  this.route.params.subscribe(
    (params: any) => {
      this.pn_location_e = params['pn_location.e'];
      this.pn_location_v = params['pn_location.v'];
    }
  );

  this.router.navigate(
    ['/clients', {
      page: page,
      'pn_location.e': this.pn_location_e,
      'pn_location.v': this.pn_location_v,
    }]);
}

你能提供你得到的确切语法错误吗?太好了。谢谢@ConnorsFan!