Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从组件发送到Angular 2中的服务文件_Javascript_Angularjs - Fatal编程技术网

Javascript 将数据从组件发送到Angular 2中的服务文件

Javascript 将数据从组件发送到Angular 2中的服务文件,javascript,angularjs,Javascript,Angularjs,我有一个 app.component.html 这将成功打印出我在搜索框中输入的每个击键值 但是,我正在尝试将击键值发送到我的task.service.ts(下面的代码)中的getResults()函数,以便我可以将击键值用于api调用 import { Injectable } from '@angular/core'; import { Http, Headers } from '@angular/http'; import 'rxjs/add/operator/map'; @Injecta

我有一个 app.component.html

这将成功打印出我在搜索框中输入的每个击键值

但是,我正在尝试将击键值发送到我的task.service.ts(下面的代码)中的getResults()函数,以便我可以将击键值用于api调用

import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class TaskService {
  constructor(private http: Http) {
    console.log("Task service initialized...");
  }
  //get our result for each keystroke, return it as an observable (json)
  getResults() {
    return this.http.get('http://localhost:8080/api/KEYSTROKES')
      .map(res => res.json());
  }
}
然而,我很难想出如何做到这一点。在app.component.html中,我可以只使用{keystroke}},但在task.service.ts中引用击键值似乎并不那么简单

如何将击键数据发送到task.service.ts,以便运行api调用


此外,我正试图以“正确的方式”创建Angular 2应用程序,因此欢迎所有评论。

将事件处理程序绑定到您的输入

<input (ngModelChange)="getResults($event)" ...>



谢谢您的评论!如何在html中定义getResults?我目前有
,但当我运行此程序时,getResults只是未定义。哦,getResults()需要在@Component中,(并且事件处理程序应该重命名为onKeyUp())。这将调用您的服务。
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class TaskService {
  constructor(private http: Http) {
    console.log("Task service initialized...");
  }
  //get our result for each keystroke, return it as an observable (json)
  getResults() {
    return this.http.get('http://localhost:8080/api/KEYSTROKES')
      .map(res => res.json());
  }
}
<input (ngModelChange)="getResults($event)" ...>
<input (keyup)="getResults($event)" ...>