मुझे एक समस्या का सामना करना पड़ रहा है, जहां मैं गतिशील रूप से एक घटक लोड करता हूं, टेम्पलेट में कोई भी बाइंडिंग मेरे लिए काम नहीं कर रही है। साथ ही यह ngOnInit
विधि कभी ट्रिगर नहीं होती है।गतिशील रूप से लोड किए गए घटक में काम नहीं कर रहे बाइंडिंग
loadView() {
this._dcl.loadAsRoot(Injected, null, this._injector).then(component => {
console.info('Component loaded');
})
}
गतिशील रूप से घटक
import {Component, ElementRef, OnInit} from 'angular2/core'
declare var $:any
@Component({
selector: 'tester',
template: `
<h1>Dynamically loaded component</h1>
<span>{{title}}</span>
`
})
export class Injected implements OnInit {
public title:string = "Some text"
constructor(){}
ngOnInit() {
console.info('Injected onInit');
}
}
यह मेरा पहला तो मुझे लगता है इसे गलत तरीके से लागू करने के लिए कोशिश कर रहे होंगे गतिशील लोड घटकों का उपयोग है भरी हुई।
यहां समस्या का प्रदर्शन करने वाले plunkr है। किसी भी सहायता की सराहना की जाएगी।
वहाँ एक ज्ञात [मुद्दा] (https://github.com/angular/angular/issues/6223) 'loadAsRoot' साथ है। अब के लिए आपकी सबसे सुरक्षित शर्त या तो 'loadNextToLocation' या' loadIntoLocation' का उपयोग करना है। –
@EricMartinez जिस घटक को मैं लोड करने का प्रयास कर रहा हूं वह एक मॉडल संवाद है। जिस घटक को मैं इसे लोड करने की कोशिश कर रहा हूं वह एक तत्व के अंदर 'निश्चित' सीएसएस शैली के साथ है, इसलिए संवाद को 'बॉडी' टैग के पहले बच्चे के रूप में काफी लोड किया जाना चाहिए। क्या मैं इसे 'loadNextToLocation' या 'loadIntoLocation' के साथ गहरा घोंसला वाले घटक के भीतर से कर सकता हूं? – garethdn
मुझे लगता है कि आप इसे शुद्ध सीएसएस के साथ ठीक कर सकते हैं। यदि आप प्रत्येक स्थिति को 0 (शीर्ष, बाएं, दाएं, नीचे) पर सेट करते हैं, तो निश्चित स्थिति और उच्च जेड-इंडेक्स मान आपके पास लोड होने पर एक मोडल संवाद हो सकता है। –