2017-02-19 2 views
0

Я ищу способ передать идентификатор MAC в службу, используя маршруты для фильтрации данных. В моем app.html у меня есть раскрывающееся меню, в котором у меня есть список отображаемых MAC-адресов (написанных вручную). Использование угловых активированных маршрутов, как получить идентификатор mac в угловые службы, чтобы я мог использовать его в фильтре метод.Как получить: id param в службу углового2 с использованием маршрутов

[app.html]

<ul class="dropdown-menu scrollable-menu" role="menu"> 

     <li><a routerLink="mac/:id">3s-ds-23-sf-23-ce-33</a></li> 
     <li><a routerLink="mac/:id">3s-ds-23-sf-23-ce-34</a></li> 
     <li><a routerLink="mac/:id">3s-ds-23-sf-23-ce-35</a></li> 

</ul> 

service.ts

@Injectable() 
export class TabuleService { 

    //private headers = new Headers({'Content-Type': 'application/json'}); 
    private _Url = 'http://localhost:3000'; // URL to web api 

    constructor(
    private _http: Http, 
    private route: ActivatedRoute) {} 



getTemperature(): Observable<testing\[\]> { 
    const url = this._Url+'/temperature';      
    return this._http.get(url) 
       .map(res =>{ 
       let data=res.json(); 
       let parsedData = \[\]; 
// here i need to get parameter of mac from the routes to filter 
       data.filter(function(el){ return el.mac=="3s-ds-23-sf-23-ce-35" }) 

       .forEach(function(item){ parsedData.push({ 
          x:item.epoch_time_stamp, y:parseFloat(item.temp) }); }); 
          //console.log(parsedData); 
       return parsedData; }) 
       .catch(this.handleError); 
       } 

enter image description here

+4

Возможный дубликат [параметра Angular2 ActivatedRoute не определено] (http://stackoverflow.com/questions/42323644/angular2-activatedroute-parameter-is-undefined) – Aravind

+0

я могу Я не понимаю ничего, чего вы хотите достичь. Прежде всего, если вы хотите передать идентификатор по ссылке, идентификатор должен быть частью ссылки. Вы всегда передаете ': id', вместо передачи фактического идентификатора:' routerLink = "mac/3s-ds-23-sf-23-ce-33" '. –

ответ

0
<ul class="dropdown-menu scrollable-menu" role="menu"> 

     <li *ngFor="address in macAddress> 
      <a [routerLink]="['/mac', address]"> 
       {{address}} 
      </a> 
    </li> 
</ul> 

В компоненте,

macAddress:Array<string>=['3s-ds-23-sf-23-ce-33', '3s-ds-23-sf-23-ce-34', '3s-ds-23-sf-23-ce-35'; 

Вы не можете получить параметр, используя

constructor(
    private _http: Http, 
    private route: ActivatedRoute) { 
      this.mac= this.route.params.subscribe(params => { 
        this.category = + params['address']; 


    }); 
} 
Смежные вопросы