Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 将数据传递到路由器2_Angular - Fatal编程技术网

Angular 将数据传递到路由器2

Angular 将数据传递到路由器2,angular,Angular,我需要将数据传递到我的路由器以在目标组件中使用它,我使用了NavigationExtras的QueryParam,但它在URL中显示参数,是否有其他方式传递数据 let navigationExtras: NavigationExtras = { queryParams: { "param1": true, } }; this.router.navigate(['/page1/view

我需要将数据传递到我的路由器以在目标组件中使用它,我使用了
NavigationExtras
QueryParam
,但它在URL中显示参数,是否有其他方式传递数据

let navigationExtras: NavigationExtras = {
            queryParams: {
                "param1": true,
            }
        };
        this.router.navigate(['/page1/view'],navigationExtras);

嗨,试试这样的东西:

1-声明服务,如:

import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';


@Injectable()
export class SharedService {

  // Observable sources (change activity)
    private emitChangeActivitySource = new Subject<any>();
    // Observable streams (change activity)
    changeActivityEmitted$ = this.emitChangeActivitySource.asObservable();
    // Service (change activity)
    emitChangeActivity(change: any) {
        this.emitChangeActivitySource.next(change);
    }

}
3-您要触发它的位置:

this._sharedService.emitChangeActivitySource({name:'',descr:''});

嗨,试试这样的东西:

1-声明服务,如:

import { Observable } from 'rxjs/Observable';
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';


@Injectable()
export class SharedService {

  // Observable sources (change activity)
    private emitChangeActivitySource = new Subject<any>();
    // Observable streams (change activity)
    changeActivityEmitted$ = this.emitChangeActivitySource.asObservable();
    // Service (change activity)
    emitChangeActivity(change: any) {
        this.emitChangeActivitySource.next(change);
    }

}
3-您要触发它的位置:

this._sharedService.emitChangeActivitySource({name:'',descr:''});

在导航到下一页之前,请使用set方法设置参数。然后导航到下一页

myFunction1(){
    this.uploadData = param;
    this.router.navigate(['/page1/view'])
}

set uploadData (param) {
        this._param = param;
}
进入下一页后,使用get方法检索参数

myFunction2(){
        parameter = this.uploadData;
}   

get uploadData () {
            return this._param;
}
请注意。这只是一个sudo代码。您需要按照您的要求实施它

您可以从以下链接获得关于getter和setter的更多信息


在导航到下一页之前,请使用set方法设置参数。然后导航到下一页

myFunction1(){
    this.uploadData = param;
    this.router.navigate(['/page1/view'])
}

set uploadData (param) {
        this._param = param;
}
进入下一页后,使用get方法检索参数

myFunction2(){
        parameter = this.uploadData;
}   

get uploadData () {
            return this._param;
}
请注意。这只是一个sudo代码。您需要按照您的要求实施它

您可以从以下链接获得关于getter和setter的更多信息


正如其他人所说,使用服务

我这里有一个简单的例子:

或者现在在Angular v6及更高版本中:

import { Injectable } from ‘@angular/core’;
@Injectable({
   providedIn: 'root'
}) 
export class DataService { 
  serviceData: string; 
}

正如其他人所说,使用服务

我这里有一个简单的例子:

或者现在在Angular v6及更高版本中:

import { Injectable } from ‘@angular/core’;
@Injectable({
   providedIn: 'root'
}) 
export class DataService { 
  serviceData: string; 
}


您想要像?param=true或as/note这样的查询字符串吗?我需要传递数据而不在URL中显示它。您可以将其作为@input传递吗。。这是一个componeet子组件吗?不,这就是问题所在,这是另一个组件,我需要类似的东西:`{path:'heros',component:HeroListComponent,data:{title:'heros List'}}}`所以试着使用一个广播也许你想要像?param=true或as/note这样的查询字符串,我需要在不在URL中显示的情况下传递数据。您可以将其作为@input?传递吗。。这是一个Componenet的孩子吗?不,这就是问题所在,这是我需要的另一个类似的组件:`{path:'heros',component:HeroListComponent,data:{title:'heros List'}}`所以在第三步中尝试使用广播,我想你的意思是
这个。_sharedService.emitChangeActivity({name:'',descr:'}),我更改了它并进行了测试,我得到了这个错误,无法得到null的“outlet”,我认为这两个组件之间没有关系来发出事件。。你能解释一下你在代码里到底做了什么吗?这是我的错,我修正了插座错误,但是当我订阅ChangeActivityEmissued$时没有结果,我想因为我们在不同的组件中使用服务,所以当我注入它时,源代码是空的。不,它是用来在不同的组件中共享内容的,就像第三步中的Angularjs$broadcast()和$on(),我想你的意思是
这个({名称:'',描述:'})
,我对其进行了更改并进行了测试,我发现此错误无法获取Null的“outlet”我认为发出事件的两个组件之间没有任何关系..请您向我解释一下您在代码中到底做了什么吗?这是我的错,我修复了outlet错误..,但是当我订阅ChangeActivityEmissed$时没有结果,我认为是因为我们在不同的组件中使用该服务,当我注入它时,源是空的。不,它是用来在不同的组件中共享内容的,就像Angularjs$broadcast()和$on()一样