मैं एक घटक में मेरी नियंत्रक के लिए उनकी निर्भरता को जोड़ना चाहते हैं, जबकि:
angular
.module('app')
.component('myComponent', {
template: '<div>some content</div>',
controller: ["$routeParams", function ($routeParams) {
var ctrl = this;
ctrl.myId = $routeParams.id;
});
अब मैं सिर्फ परीक्षण करना चाहते हैं:
यहाँ मेरी घटक है इस का पालन:
describe("spec for myComponent", function() {
var $componentController;
var $routeParams;
beforeEach(module('app'));
beforeEach(inject(function (_$componentController_, _$routeParams_) {
$componentController = _$componentController_;
$routeParams = _$routeParams_;
$routeParams = {
myId: 42
}
}));
it('should init', function() {
var ctrl = $componentController('myComponent', $routeParams, null);
expect(ctrl.myId).toBe(42);
});
});
लेकिन दुर्भाग्य से ctrl.myId क्योंकि $ routeParams सही ढंग से इंजेक्शन नहीं कर रहे हैं अपरिभाषित है। क्यूं कर?
बदलें 'var ctrl = $ घटक नियंत्रक (' myComponent ', $ pathParams, null); 'var ctrl = $ घटक नियंत्रक (' myComponent ', {$ pathParams}, null);' यह भी ध्यान दें, आप दूसरे का उपयोग कर सकते हैं एक नकली $ रूट पैराम इंजेक्ट करने के लिए तर्क (Neo182 देखें जवाब है)। – user2954463