On 2016-02-26 16:42, Radek Holý wrote: 

> Well, let's say that I have a component that is attached to the root element 
> (<html>) and a child component for each layout. By definition, the root 
> *component* would replace all the child elements of the root element (<head> 
> and <body> in <html>) with the DOM created from the template of the 
> component. I guess that this by itself may lead to some unexpected side 
> effects. That's why I said that to mitigate it I would probably have to "copy 
> the whole <head> into each template of every such component". Assuming the 
> hierarchy, I'd have to copy it just to the template of the *root* element but 
> still, I would have to maintain two copies of the document header (in the 
> template and in index.html [1]). I really doubt that this is a recommended 
> way to do what I need.

ah, two mistakes: 

* ...Assuming the hierarchy, I'd have to copy it just to the template of
the *root* **component**... 

* And ignore that "[1]" please. 

Sorry 

> Yes, I currently use the "imperative" way (add classes OnInit and remove the 
> classes OnDestroy) but I again doubt that this is a recommended way to do 
> what I need. 
> 
> Or did I missed something?
> -- 
> Radek 
> 
> On 2016-02-26 13:32, Günter Zöchbauer wrote: 
> I don't know if that works with `<html>`. I have tried it successfully with 
> `<body>`. 
> Therefore I guess it would work for `<html>` as well. 
> Not sure what you mean by: 
> and copy the whole <head> into each template of every such component? 
> One root component should be enough. The layouts can be components in the 
> root component. 
> Adding the root component to `<head>` would probably wipe all it's static 
> content when the root component is bootstrapped. 
> Another way is to add the root component to `<body>` or as a child of body 
> and read/write the classes of `<html>` imperatively (instead of declarative 
> binding syntax)
> 
> On Thursday, February 25, 2016 at 11:24:37 AM UTC+1, Radek Holý wrote: Hello, 
> 
> I'm using a CSS framework which requires different classes of the <html> 
> element for different layouts. I'd like to have a component for each 
> layout. 
> 
> How can I bind to the <html>'s attributes/classes from these components? 
> 
> Do I have to use the "html" selector and copy the whole <head> into each 
> template of every such component? Well, I can create a component which 
> holds the header but still it would have to be maintained in at least 
> two different files (the index.html and the template). 
> 
> Or should I create a directive with the selector "html" and access this 
> directive from these components? 
> 
> What is the recommended approach? 
> 
> Thanks in advance 
> -- 
> Radek

 

-- 
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