Приветствую. Пробую себя в Angular 2 Asp.net Core. Возник стопор при работе с сервисом для получения данных с сервера. Не могу понять почему шаблон из "учебника" не работает. Выдает следующее:
Аргумент типа "(data: Order[]) => Order[]" нельзя назначить параметру типа "((value: Order) => void) | undefined".
Тип "(data: Order[]) => Order[]" не может быть назначен для типа "(value: Order) => void".
Типы параметров "data" и "value" несовместимы.
Тип "Order" не может быть назначен для типа "Order[]".
Свойство "length" отсутствует в типе "Order".
Если кто сталкивался ,помогите пожалуйста разобраться.
Сорцы: tendercreate.component.ts
import { Component, OnInit} from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms/src/model';
import { OrdersService } from "../../services/orders.service"
import { Order } from "../../shared/models";
@Component({
selector: 'tender-create',
templateUrl: './tendercreate.component.html',
styleUrls: ["./tendercreate.component.css"],
providers: [OrdersService]
})
export class TenderCreateComponent implements OnInit{
order: Order= new Order();
orders: Order[];
constructor(private ordersService: OrdersService){}
ngOnInit(){
this.loadOrders();
}
loadOrders(){
this.ordersService.getOrders()
.subscribe((data: Order[]) => this.orders = data);
}
onSubmit(){
// this.ordersService.createOrders(this.order)
// .subscribe((data: any)=> this.orders.push(data));
}
}
orders.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Order } from '../shared/models';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class OrdersService {
private url = "/api/orders";
constructor(private http: HttpClient) {
}
getOrders(): Observable<Order>{
return this.http.get(this.url);
}
createOrders(neworder: Order){
return this.http.post(this.url,neworder);
}
}
models.ts
export class Order {
constructor(
public Caption?: string,
public Text?: string,
public Geomap?:string,
public Cost?: number,
public Viewers?: number,
public UsersId?: number,
public ThereImages?: boolean,
public ThereFiles?: boolean
){}
}
export class User{
constructor(){}
}
Пробовал по этому ответу,но не вышло.
Вот тут Observable<Order>
компилятору указывается, что тип внутри Observable
- Order
А вот тут .subscribe((data: Order[])
- уже Order[]
.
Чтобы все заработало, эти типы должны совпадать.
Судя по названию везде должно быть Order[]
.
Кроме того, так как теперь разбором json занимается сам HttpClient
, при вызове ему можно указать какой тип ожидается:
return this.http.get<Order[]>(this.url);
В противном случае будет считаться, что возвращается Object
.
Подскажите, как правильно сделать запрос к БД с формыКак я понимаю, делать это надо с помощью инъекций:
Пишу простую (со своей стороны) программу, она состоит из готового пакета KeystrokeAPI, который ловит нажатые клавиши и выводит их на консоль, так...
Есть список дат с несколькими культурами языков таких как "24 августа 2017" и "4 jenuery 2017" нужно конвертировать в DateTime, как сделать одну культуру...
Есть таблица Выручка в базе данных SQLite