题目描述可能不准确,请原谅,我是刚学NG2的新手。
场景还原:
这是 angular2.4.3 + angular-cli 做的小demo,我定义了一个组件类:
@Component({
selector: 'side-bar',
template: `
<div class="side-left">
<div>
<header>
<h1>ng-movie</h1>
<h4 (click)="hideSidebar()">点击此处隐藏container</h4>
</header>
</div>
</div>
`
})
export class sideBarComponent{
isHideContainer: bollean; // 准备用于控制 container 显示与否,通过 *ngIf
hideSidebar () {
// 如何把 div.side-bar 隐藏?
}
}
在 angular2 中,我无法把组件中的数据isHideContainer
添加在<side-bar></side-bar>
上,因为这已经跨组件了,需要用到组件通信。
问题:
问题一:到这里我就很疑惑了,我认为<side-bar></side-bar>
也应该算是组件的一部分,为什么需要组件通信才能对它进行控制?因为我之前学过vue.js
,在vue
中这问题是不存在的,它会把container
元素替换成template
,而不是像angular2
把template
嵌入到container
中。
问题二:运行ng build --prod --env=prod
后,<side-bar></side-bar>
标签还保留着,没有替换成<div></div>
,是否故意保留的?