angular - ng-bootstrap typeahead TypeError: Objekt(...) er ikke en funksjon
Jeg vil gjerne bruke Angular Bootstrap typeahead linkToTypeahead i en Angular5-app. Men jeg får stadig følgende feil:
ERROR TypeError: Object(...) is not a function
at new NgbTypeahead (typeahead.js:52)
at createClass (core.js:12449)
at createDirectiveInstance (core.js:12284)
at createViewNodes (core.js:13742)
at callViewAction (core.js:14176)
at execComponentViewsAction (core.js:14085)
at createViewNodes (core.js:13770)
at callViewAction (core.js:14176)
at execComponentViewsAction (core.js:14085)
at createViewNodes (core.js:13770)
og også:
ERROR TypeError: Cannot read property 'instance' of undefined
at nodeValue (core.js:11753)
at Object.eval [as handleEvent] (NgbdTypeaheadBasic.html:9)
at handleEvent (core.js:13547)
at callWithDebugContext (core.js:15056)
at Object.debugHandleEvent [as handleEvent] (core.js:14643)
at dispatchEvent (core.js:9962)
at eval (core.js:10587)
at HTMLDocument.eval (platform-browser.js:2628)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4740)
Jeg kopierte Simple Typeahead-koden fra nettstedslenken.
Min package.json-fil:
{
"name": "test-type-ahead",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^5.2.0",
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/router": "^5.2.0",
"@ng-bootstrap/ng-bootstrap": "^2.0.0-alpha.0",
"bootstrap": "^4.1.0",
"core-js": "^2.4.1",
"rxjs": "^5.5.6",
"zone.js": "^0.8.19"
},
"devDependencies": {
"@angular/cli": "~1.7.3",
"@angular/compiler-cli": "^5.2.0",
"@angular/language-service": "^5.2.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "~2.5.3"
}
}
Hva jeg har prøvd så langt:
- gjeninstallert node_modules med npm - hjelper ikke
- Startet et helt nytt prosjekt med Angular CLI og prøvde koden der - hjelper ikke.
All hjelp er svært verdsatt!
Svar #1
Så mitt problem ble løst ved å installere en stabil versjon av ng-bootstrap:
så package.json-fil:
`dependencies
....
"@ng-bootstrap/ng-bootstrap": "^1.1.1",
....
dependencies`
Takk for de raske svarene til JB Nizet og Niladri
REDIGER: Også, som @Niladri sa i kommentarene, må du bruke forRoot() for modulene du ønsker å bruke. Dette er den offisielle dokumentasjonen for versjon 1.1 som er for Angular 5, og det står skrevet her, men den nye dokumentasjonen for nyere versjoner av Angular sier ikke det, siden det ble endret. Så husk på det!
