Hi Sander, hi Richard!

Finally I got the mistake, when I faced it in my new project again:

The error had been caused by a parameter in a constructor of the 
DataService class, annotated as "Injectable". This parameter ("uri") had 
been added to provide the data-object specific relative path to a backend 
service, when this constructor is called by a child-class like 
UserDataService:

@Injectable({
  providedIn: 'root'
})
export class DataService {

  url: string; 

  constructor(uri: string, private http: HttpClient) {
    this.url = environment.apiUrl + uri;
  }
..


This seems to be no issue for the development compiler. But the production 
compilation breaks. The reason seems to be that Angular does not know what 
to inject into the uri parameter as actually there is nothing to inject. 
And this parent class shall not be injected anyway, but only its childs. 
But I thought if a child class is injectable the parent class needs to be 
injectable, too. 
But this does not seem to be the case. 
Therefore I changed the coding now by removing the "Injectable" Attribute 
from DataService and making it an "abstract class". So only it's child 
classes are now injectable - without the "uri" parameter in the 
constructor. And this way everything seems to be fine now (at least the 
unit-tests are all green). 

And shame on me!!!
I recognized now also a warning in the compilation for production that told 
me:

*activeWarning: Can't resolve all parameters for DataService in 
Z:/Data/Software_Entwicklung/EmPort/emport-ui/src/app/services/data.service.ts: 
([object Object], ?). This will become an error in Angular v6.x*


:-o

So I am so sorry for carelessly not mentioning this warning in my posting. 
I just did not understand it and did not assume that it could relate to the 
error later in the compilation process. :-(

Nevertheless equipped with your helpful advises, I..

   - was able to track down the error by following your advise, Sander, to 
   rebuild the project step by step again! (and yes, would have been easier by 
   looking more carefully at the compilation messages..)
   - have set up a versioning and testing structure to get regular fallback 
   scenarios for future issues in place, like Richard advised. 

So thanks a lot for your helpful advises again and next time I promise to 
be more careful!

Best regards

Gunnar 




-- 
You received this message because you are subscribed to the Google Groups 
"Angular and AngularJS discussion" 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