2017-10-25 2 views
1

저는 시각 코드에서 앵귤러 2로 작업 중이며 어떤 이유로 클릭 이벤트가 작동하지 않습니다.각도 2 - 클릭 이벤트가 작동하지 않습니다. 오브젝트가 정의되지 않았습니다.

브라우저에서 프로그램을 확인하기 위해 f12를 클릭하면 "TypeError : _co.kr이 정의되지 않았습니다."버튼을 클릭 할 때이 오류가 발생합니다. 나는 무엇을 _co.task 그래서 내 코드에서 찾을 수있는 problam 수정하려고 알아.

내 작업 목록 구성 요소 :

export class TaskListComponent { 

    constructor(private _taskListService: TaskListServiceService) { } 

    btnEnter: string = 'Enter Task'; 
    task: string; 

    Tasks = this._taskListService.taskListItems; 

    AddTaskToList(task) { 
    this._taskListService.AddToToDoList(task) 
    } 

내가 저장하고 작업 목록을로드하고이 목록에 추가 기능이있는 내 작업 목록 서비스 :

@Injectable() 
export class TaskListServiceService { 

    constructor() { } 

    taskListItems: toDoListItem[] = [ 
    { content: 'bla bla' }, 
    { content: "blablabal" } 
    ]; 

    AddToToDoList(task: string) { 
    this.taskListItems.push({ content: task }) 
    } 

} 

class toDoListItem { 
    content: string; 
} 

템플릿 HTML :

<div class="container" id="listContainer"> 
    <listTitle></listTitle> 
    <div> 
    <ul class="list-group col-lg-6"> 
     <li href="#" class="list-group-item" *ngFor="let task of Tasks">{{task.content}}</li> 
    </ul> 
    <input type="text" class="form-control" id="contentOfTask" [(ngModel)]="taskContent" name="content"> 
    <button class="btn btn-success" (click)=AddTaskToList(task.content)>{{btnEnter}}</button> 
    </div> 
</div> 
+0

게시물의 괄호 안에 – Sajeetharan

답변

0

유형 오류는 작업이 정의되지 않았으며 문자열이어야한다고 불평하고 있습니다. 초기 값을주고 작동하는지 확인하십시오. 확인하지 않으면 "작업"에 할당 할 내용을 확인하십시오. AddToToDoList(task: string = "test") { console.log(task); // now task should be test unless you send it something. }

+0

을 템플릿 코드를 넣어 "taskContent"를했다 있다는 것입니다 크롬 프로젝트에서 오류 메시지가 조금 더 읽기 쉽습니다. "정의되지 않은"속성 'content'을 읽을 수 없습니다. 나는 그것이 '내용'을 인정하지 않는다고 생각한다. 작업 목록 구성 요소에 대한 서비스에서 뭔가를 놓친 것일 수 있습니까? – MetaDude

0

템플릿에 오류가 있습니다. 난 내 problam에 대한 해결책을 발견

AddToToDoList(task: string) { 
    this.taskListItems.push({ 'content': task.content }); 
} 
+0

내가 언급 한 실수를 수정했습니다. 크롬에서 앱을 확인한 후에 오류 메시지가 조금 더 읽기 쉽습니다. "정의되지 않은 'content'content '를 읽을 수 없습니다. – MetaDude

+0

즉, 함수에서 전달한 작업은 정의되지 않았습니다. '(click) = "AddTaskToList (task.content)"'대신'(click) = "AddTaskToList (task)"를 사용하는 것이 좋습니다. 함수에 전달 된 값을 출력하기 위해 콘솔 명령문을 사용하십시오. 디버깅을 통해 더 많은 가시성을 확보 할 수 있습니다. – ronakvp

+0

(click) = "AddTaskToList (task.content)"에서 (click) = "AddTaskToList (task)"로 기능을 변경하면 목록 항목을 목록에 추가하지만 비어 있습니다. task.content 목록에 작업 내용을 추가하려면/ – MetaDude

0

귀하의 템플릿이 있어야

(click)=AddTaskToList(task) 

해야하며 기능이 있어야한다.

처음에는 html 파일의 "AddTaskToList()"에 task.content를 전달해야한다고 생각했습니다.

하지만 다른 프로젝트에서 나는 ngModel에서 나온 것을 통과 시켰습니다. 그래서 내가 입력 영역에 몇 가지 작업을 쓸 때 작업 목록에 추가하고 싶습니다.

그래서 내가이 프로젝트에 변경하는 것은 내가 ngModel에 있으며 개봉 후 너무 기능 "AddTaskToList (taskContent)"

+0

만약 내가 당신이 제안한 하나의 서비스에 내 기능을 변경하면 오류가 발생합니다. 그것은 task.content의 내용을 인식하지 못합니다. 그것은 말합니다 : " 'content'유형이 'string'유형에 존재하지 않습니다. – MetaDude

+0

그래서 작업이 객체가 아닌 문자열입니까? – Sajeetharan

0

좋아,

(click)=AddTaskToList(task.content) 

(click)="AddTaskToList(task.content)" 
+0

그 대답도 우리가 언급 한 것입니다! 다시 게시하지 않아도 기존 답변을 더 잘 표시 할 수 있습니다. – Sajeetharan

관련 문제