Я пытаюсь передать значение из файла html в свой компонент, а затем добавить его в свой URL-адрес канала json.Передача переменной в angular2
Мне удалось получить его в компоненте и распечатать в html-файле, но U не может подключить его к концу моего json-канала.
Этот компонент и HTML файл прямо из anguler2 кли
app.component.ts
import { Component } from '@angular/core';
import {Http} from '@angular/http';
import {HTTP_PROVIDERS} from '@angular/http';
@Component({
moduleId: module.id,
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.css']
})
export class AppComponent {
title = 'app works!';
values = '';
onKey(value: string) {
this.values = value + ''; // pass this value to the url below
}
people: Array<Object>;
constructor(http:Http) {
http.get('http://myurl.com/json_feed.php?q=' + this.values) // get the value from above
.subscribe(res => {
this.people = res.json();
})
}
}
app.component.html
<h1>
{{title}}
</h1>
<input #box (keyup)="onKey(box.value)">
{{values}}
<ul *ngFor="let person of people">
<li class="text">
{{person.model}}
</li>
</ul>
Выглядит немного странно. Код 'http.get (...)' выполняется как первое, когда компонент создается, но 'onKey (...)' выполняется только позже, когда нажата клавиша. Это не сработает. Вам нужно переместить 'http.get ...' в 'onKey()' где 'values' обновляется. –
Я попытался поместить конструктор в функцию onKey, но он дает ошибку, говоря «не могу найти конструктор», я новичок в машинописном тексте, и у него есть некоторые странные gotchas – Jason
Я не имел в виду конструктора. Я имел в виду содержание конструктора. Вы не можете переместить конструктор внутри другого метода. –