2017-11-05 10 views
0

私のアプリは、メソッドを実行するために参考のためにサービスファイルにアクセスしようとしています。私は、コンソールで次のエラーを取得しておいてください。角4サービスファイル参照未定義として表示

Uncaught TypeError: Cannot read property 'keytermsUpdateService' of undefined 
    at HTMLDivElement.froalaEditor.keyup (editor.component.ts:51) 
    at HTMLDivElement.dispatch (scripts.bundle.js:4) 
    at HTMLDivElement.q.handle (scripts.bundle.js:4) 
    at Object.trigger (scripts.bundle.js:5) 
    at r.fn.init.triggerHandler (scripts.bundle.js:5) 
    at v (scripts.bundle.js:13) 
    at HTMLDivElement.<anonymous> (scripts.bundle.js:13) 
    at HTMLDivElement.dispatch (scripts.bundle.js:4) 
    at HTMLDivElement.q.handle (scripts.bundle.js:4) 
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:425) 

私は機能の範囲をチェックしたし、コンストラクタをチェックしましたが、私は、エラーを見つけることができません。

import { Component, ViewEncapsulation } from '@angular/core'; 
import { Editor} from './editor'; 
import { KeytermsService } from '../keyterms/keyterms.service'; 
import rake from 'rake-js'; 
import striptags from 'striptags'; 
declare var $: any; 

@Component({ 
    selector: 'app-editor', 
    templateUrl: './editor.component.html', 
    styleUrls: ['./editor.component.css'], 
    encapsulation: ViewEncapsulation.None 
}) 

export class EditorComponent { 
    title = 'editor'; 
    statusCode: number; 

    editor: Editor[]; 
    allEditor: Editor[]; 

    constructor(public keytermsService: KeytermsService) { 

    } 

    ngOnInit(): void { 

     $.FroalaEditor.DefineIcon('alert', {NAME: 'info'}); 

     let keywords; 
     this.keytermsService.keytermsUpdateService(keywords); 
    } 

    public options: Object = { 
    placeholderText: 'Edit Your Content Here!', 
    charCounterCount: false, 
    height: "70vh", 
    placeholder: "Edit Me", 
    events : { 
     'froalaEditor.keyup' : function(e, editor) { 
     let html = (editor.html.get()); 
     let text = striptags(html); 
     console.log(text); 
     let ec = new EditorComponent(this.keytermsService); 
     let keywords = rake(text, { language: 'english' }); 
     this.keytermsService.keytermsUpdateService(keywords); 
     } 
    } 
    } 

どんなに私がkeytermsUpdateServiceにアタッチ何の機能、私はそのエラーを取得していない:ここで

は私のコンポーネントファイルです。

+0

ngOnInitでオプション(または少なくともoptions.events)を定義してみてください。コンポーネントは、オプションが初期化されたときにkeytermsService Injectableにアクセスできない可能性があります。 – LLai

答えて

0

公共のをコンストラクタで使用している可能性があります。プライベートを注射用に使用している可能性があります。 NgModuleでプロバイダとしてサービスを登録することも忘れないでください。

+0

私はあなたが正しいと思っていますが、それをプライベートに変更し、プロバイダの下にリストすることは役に立たなかった。同じエラー – azmatrix