Hi, First, thanks Justin.
I understand why angular can't throw any error when i create key 'parent'. But, i don't understand why angular doesn't validates unknown keys and throws an error. About the directive. I isolated the scope of my parent directive to avoid show/hide all child-two directives, when i have more than one of it. But, now, the text of directive child-two is never show, because child.show is undefined. I think that child-two prototypical inherits scope from parent scope and have 'direct' access to parent properties. Why child.show is undefined? This is my updated plunk <http://plnkr.co/edit/ZW4sNN?p=preview>. 2014-10-12 13:37 GMT-03:00 Justin Walsh <[email protected]>: > Hi, > > The reason you didn't get an error with > > parent:"^parent" > > Is that JavaScript allows the dynamic creation of properties on an object, > and in your case, you just created one with the name: parent. This isn't > an error by - and angular just went and checked for a 'require' property > and didn't find one (since it optional, this is a valid scenario). > > In terms of the 'right' way to do this, a simple solution is this plnkr > <http://plnkr.co/edit/O0fIgV?p=preview>. Here, the child directive > shares the scope with the parent and so the property (show) is visible from > the child. You may however want to > > - Introduce a dot in the model (i.e. $scope.model.show = true). This > angular > wiki page > <https://github.com/angular/angular.js/wiki/Understanding-Scopes> will > provide some understanding. > - Introduce isolate scope in your directive (depending on your usage). > > Regards > Justin > > > On Sunday, October 12, 2014 3:06:53 PM UTC+2, César Costa wrote: >> >> Hi, i updated my plunk again and this is my solution: >> >> http://plnkr.co/edit/tVBYIE?p=preview >> >> Is it the correct solution for this problem? >> >> Thanks :) >> >> 2014-10-12 9:56 GMT-03:00 César Barone <[email protected]>: >> >>> Oh god. :p. Thanks Justin. >>> >>> Why angular doesn't show any error? >>> >>> I replaced and i can't toggle child-two. I updated my plunk: >>> >>> http://plnkr.co/edit/tVBYIE?p=preview >>> >>> >>> >>> 2014-10-12 7:56 GMT-03:00 Justin Walsh <[email protected]>: >>> >>> Hi César >>>> >>>> In your child directives, replace: >>>> >>>> parent: '^parent', >>>> >>>> with: >>>> >>>> require: '^parent', >>>> >>>> Regards >>>> Justin >>>> >>>> >>>> >>>> On Saturday, October 11, 2014 8:56:11 PM UTC+2, César Costa wrote: >>>>> >>>>> Hi, >>>>> >>>>> I implemented a parent directive that have two child directives. When >>>>> the user click in button inside child-one directive i need to toggle a >>>>> content from child-two directive. But, the parent controller inject on >>>>> childs directive are undefined. >>>>> >>>>> This plunker show my case: >>>>> >>>>> http://plnkr.co/edit/tVBYIE?p=preview >>>>> >>>>> Can anyone help me? >>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "AngularJS" group. >>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>> topic/angular/UIyBJJSQjGs/unsubscribe. >>>> To unsubscribe from this group and all its topics, 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 a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/UIyBJJSQjGs/unsubscribe. > To unsubscribe from this group and all its topics, 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.
