Not sure if I understood correctly: you're saying that you want the route 
data on a service? I don't think that's how it works, and frankly, I don't 
see how it can work that way. If you have a service, that is by definition 
*not* tied to a single route, why would you want hardcoded (from service's 
point of view) data for a single route?
 
The thing is, the service will, in theory, be called by multiple 
components, each with their own state and route state. So if you want 
route-specific information *in your service*, then that info needs to come 
from the source - that is, from the component actually rendered on the 
route. If it's a service then it should not be concerned with view or with 
app states much, it should only say "hey, I'm here, if you want some info, 
ask it from me, and if you want details, please give me your *someKey*".

So you could design the service to take this *as a parameter* to whatever 
calls you're making to it. Have route call the service with the 
route-specific data as arguments, and then your service can decide what to 
do about it.

To copy-paste your samples to illustrate what I mean:
const CommonRoutes:RouterConfig = <Route[]>[
    {
        path: '',
        component: Home,
        data: {
            someKey: true
        }
    }
];


@Component({
})
export class HomeComponent {
    
    private myData: any;
    constructor(private myService: MyService ) {
        this._route.data.subscribe(data => {
            console.log(data);
            this.myService.getDataByKey(data.someKey)
        })
    }
}


@Injectable()
export class MyService {
  private data: any = {
    data1: 'value',
    data2: 'value2'
  };


  getDataByKey(someKey: boolean) {
    return someKey ? this.data.data1 : this.data.data2;
  }
}


Does that make any sense? Does it help in your use case?

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to