मैं कोणीय 2 और टाइपस्क्रिप्ट के लिए नया हूं और सर्वोत्तम प्रथाओं का पालन करने की कोशिश कर रहा हूं।
एक साधारण जावास्क्रिप्ट मॉडल ({}) का उपयोग करने के बजाय, मैं टाइपस्क्रिप्ट क्लास बनाने का प्रयास कर रहा हूं।
हालाँकि, कोणीय 2 इसे पसंद नहीं करता है।
मेरा कोड है:
import { Component, Input } from "@angular/core";
@Component({
selector: "testWidget",
template: "<div>This is a test and {{model.param1}} is my param.</div>"
})
export class testWidget {
constructor(private model: Model) {}
}
class Model {
param1: string;
}
और मैं इसका उपयोग कर रहा हूं:
import { testWidget} from "lib/testWidget";
@Component({
selector: "myComponent",
template: "<testWidget></testWidget>",
directives: [testWidget]
})
मुझे कोणीय से एक त्रुटि मिल रही है:
अपवाद: परीक्षण के लिए सभी मापदंडों को हल नहीं कर सकते हैं: (?)।
तो मैंने सोचा, मॉडल अभी तक परिभाषित नहीं है ... मैं इसे शीर्ष पर ले जाऊंगा!
अब मुझे छोड़कर अपवाद मिलता है:
मूल अपवाद: मॉडल के लिए कोई प्रदाता नहीं!
मैं इसे कैसे पूर्ण करूं??
संपादित करें: उत्तर के लिए सभी को धन्यवाद। इसने मुझे सही रास्ते पर ले गया।
कंस्ट्रक्टर में इसे इंजेक्ट करने के लिए, मुझे इसे घटक पर प्रदाताओं को जोड़ना होगा।
यह काम करने के लिए प्रकट होता है:
import { Component, Input } from "@angular/core";
class Model {
param1: string;
}
@Component({
selector: "testWidget",
template: "<div>This is a test and {{model.param1}} is my param.</div>",
providers: [Model]
})
export class testWidget {
constructor(private model: Model) {}
}