पर प्रसारित की गईं, मैं कोणीय 2 में अभिभावक निर्देश के भीतर बाल निर्देशों के सामान्य कोणीय 1.x पैटर्न को कार्यान्वित करना चाहता हूं। यहां मेरी वांछित संरचना है।कोणीय 2 बाल घटक घटनाएं अभिभावक
<foo>
<bar>A</bar>
<bar>B</bar>
<bar>C</bar>
</foo>
मैं क्लिक घटनाओं Foo
घटक को उत्सर्जित करने के लिए है करने के लिए इन Bar
घटकों के लिए करना चाहते हैं। यहाँ
@Component({
selector: 'foo',
template: `
<div>
<ng-content></ng-content>
</div>
`
})
export class Foo {
@ContentChildren(Bar) items: QueryList<Bar>;
}
और मेरी Bar
:
यहाँ मेरी Foo
अब तक है
@Component({
selector: 'Bar',
template: `
<div (click)="clickity()">
<ng-content></ng-content>
</div>
`
})
export class Bar {
clickity() {
console.log('Broadcast this to the parent please!');
}
}
मैं कैसे Foo
जब भी अपनी Bars
में से एक क्लिक किया जाता है यह सूचना देने के बारे में जाते हैं?
आप '.emit को EventEmitter तरीकों का उपयोग कर सकते हैं()' बार में, और '.subscribe()' फू घटक में। या तो '@ आउटपुट() 'या सेवा के माध्यम से, जैसे [इस उदाहरण] (http://stackoverflow.com/a/34576997/1876949) – Sasxa
@Sasxa क्या आप स्पष्टीकरण दे सकते हैं? मुझे पता है कि बच्चे से माता-पिता से @Output() का उपयोग कैसे करें, लेकिन केवल अगर मैं वास्तव में बच्चे के घटक पर विशेषता डाल सकता हूं। मुझे नहीं पता कि उपयोगकर्ता द्वारा परिभाषित बच्चों के साथ गतिशील रूप से इसे कैसे किया जाए। – Harangue
tbh, मैंने '@Output()' का उपयोग नहीं किया है ... मैं सेवा पसंद करता हूं, मैं इसे दोनों कक्षाओं में आयात करता हूं, एमिटर के एक ही उदाहरण के लिए पूछता हूं और जहां मुझे आवश्यकता है वहां emit/subscribe पंजीकृत करें, मैं कोशिश करूंगा एक मिनट में उदाहरण बनाने के लिए ... – Sasxa