Thanks, Eric.  I really think this is something specific to using ng-for
here.  If I factor out the ng-for stuff everything works as expected, and
the property is successfully passed to the child component from the parent
component.  In this case, I want to pass the property from the ng-for
context, but it does not seem to be working.

I have seen examples that show passing ng-for values to a custom component,
but I cannot find examples of the actual component implementation.  Using
@Optional() in the child component constructor did stop the error, but the
property value that I am trying to pass is null in the constructor.

What should the component implementation look like to accept a property
from ng-for as in <component-two *ng-for="#foo of foos"
[foo]="foo"></component-two>



On Wed, Nov 18, 2015 at 7:46 AM, Eric Martinez <[email protected]>
wrote:

> Mark,
>
> when you do this
>
>  directives: [ComponentTwo, NgFor]
>
> Angular tries to instatiate the class, but it can not find any provider
> for "String" (note that in your constructor you are passing a string, so it
> assumes your ComponentTwo it has a dependency [provider,viewProvider] that
> is type of String). So I recommend two things
>
> - Remove it and use Parent/Child communication to set the value for "foo"
> - Try adding @Optional() in your constructor (I've read that it only works
> with classes, so probably won't work, just give it a try ;) )
>
> Another thing I noticed is the order of your classes/components, if the
> snippet your pasted is the same in your project it should be fail in
> another way : note that "ComponentTwo" is defined after "ComponentOne", so,
> again, assuming that's the order in your classes you should add this to
> your directives property
>
>   directives: [forwardRef(() => ComponentTwo), NgFor]
>
> Reference
> https://angular.io/docs/ts/latest/api/core/forwardRef-function.html
> Forward references in Angular2
> <http://blog.thoughtram.io/angular/2015/09/03/forward-references-in-angular-2.html>
>
> --
> 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 http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to