更改組件的公共變量我有一個從我app.component
設置兩個兄弟組件:從同級組件
<my-a></my-a>
<my-b></my-b>
的<my-a>
這種可見性是由公共變量在它的成分控制:
@Component({
moduleId: module.id,
selector: 'my-a',
templateUrl: `<div *ngIf="visible">Hello World</div>`
})
export class MyAComponent {
public visible = false;
}
我想改變visible
的值<my-b>
後點擊一個元素:
@Component({
moduleId: module.id,
selector: 'my-b',
templateUrl: `<div (click)="onClick()">Click Me</div>`
})
export class MyBComponent {
onClick() {
// stuff here
}
}
如何設置visible = true
在<my-a>
從<my-b>
?這應該是在父母app.component
的邏輯?
編輯
感謝您的答案。我實現了jQuery中的幾行代碼的正常工作的東西:
@Component({
moduleId: module.id,
selector: 'my-b',
templateUrl: `<div (click)="onClick('my-a')"></div>`
})
export class MyBComponent {
onClick(element) {
$(element).show(); // or hide() or toggle() or whatever
}
}
使用jQuery使它易於擴展,如果我們希望有更多的元素,而不是增加發射器和輸入到每一個部件。
我只是擔心在Angular2中使用jQuery是不好的做法?
我不太熟悉JQuery,但是如果我記得選擇器是CSS選擇器。 Angular2有時會變形名稱/類來創建一個'影子dom'來隔離組件,並防止CSS互相干擾。所以在組件之間使用JQuery可能會很麻煩。但是,由於我沒有使用太多的東西,所以請重量輕一些。 –