在我的蜿蜒环绕世界各地的interweb,现在特别是angular.io风格的文档,我发现许多引用@HostBinding和@HostListener.看起来它们非常基础,但不幸的是,目前它们的文档有点粗略.
任何人都可以解释它们是什么,它们如何工作并举例说明它们的用法?
如何在不将主体作为应用程序选择器并使用主机绑定的情况下向body标签添加类?
我尝试使用渲染器,但它改变了整个身体
我正在开发一个大的angular2应用程序并且更改根选择器会影响很多代码,我将不得不改变很多代码
我的用例是这样的:
当我打开一个模态组件(动态创建)时,我想要隐藏文档滚动条
如何通过根组件更改body类?
@Component({
selector: "app",
directives: [ROUTER_DIRECTIVES],
template: `
<section class="header">
<h1>App</h1>
<router-outlet></router-outlet> `
})
Run Code Online (Sandbox Code Playgroud) 我知道它应该很容易但是角度2.0还没有很多例子..
在某些情况下,在我的一个组件中,我需要在body标签上添加class.但是我的应用程序比身体更深,所以我需要类似的东西
angular.element('body').addClass('fixed');
Run Code Online (Sandbox Code Playgroud)
但在Angular 2.0 ..
顺便说一句,我知道我可以以某种方式引导我的应用程序包含body标签,但我认为在其他一些情况下我还是需要选择一些元素,所以我需要一个解决方案如何做这个简单的任务 - "选择元素并添加类到它"
我有三个组成部分.这些是HomeComponent,SignInComponent和AppComponent.应用程序打开时,我的主页(HomeComponent)显示.我点击登录页面打开"登录"按钮.我打开它时想要"登录页面"类到正文.
我该怎么做?
// AppComponent
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'app',
template: '<router-outlet></router-outlet>'
})
export class AppComponent {}
// SignInComponent
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'signin',
templateUrl: './signin.component.html',
styleUrls: ['./signin.component.css']
})
export class SignInComponent {}
// HomeComponent
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
selector: 'home',
templateUrl: './home.component.html'
})
export class HomeComponent { }
// Part of index.html
<body>
<app>
<div class="spinner">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div> …Run Code Online (Sandbox Code Playgroud) 我认为应该很容易,但我找不到.
我有类似的东西
<html>
<head>
<title>{{'a' + 'b'}}</title>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
好像我无法访问外面的任何东西my-app.
在角度1.x中它很容易,我能够添加ng-app任何元素(<html ng-app="myApp">).
现在我想我只能在体内引导.
我知道我可以手动引导某种方式(没有尝试),但动态更改单页应用程序中的标题应该是超级简单的,不应该吗?