Используйте $HTTP_RAW_POST_DATA
вместо $_POST
.
Он предоставит вам данные POST как есть.
Вы сможете декодировать его с помощью json_decode()
позже.
Rxjs оператора транслирует всю таблицу одновременно. Оператор отображения Rxjs отображает всю таблицу на новый вывод. Если вы хотите изменить элементы в таблице, вам также нужно использовать функцию js map для изменения всей таблицы, проверяя все элементы таблицы отдельно.
this.books.pipe(
map(
books => books.map( book => { ...book, IsEnable: this.getEligibleBooks(book) })),
).subscribe(data => console.log(data));
map
. Кажется, все, что вы хотите сделать, это перебрать возвращенный результат и, возможно, установить член в экземпляре книги. В этом случае используйте tap
вместо map
. map
полезно, когда вы хотите преобразовать вход в другой выход. books
и book
. true
и false
, не присваивайте "True"
/ "False"
, поскольку это строковые литералы, а не логические значения. Если вы сделаете правдивое сравнение с "False"
, то получите оценку true
Books.ts
export interface IBook{
Name:string;
IsEnable:boolean;
IsEligible?:boolean|undefined;
}
books.component .ts
books: IBook[];
getBooksAsync() : Observable<IBook[]> {
return Observable.of([{"Name":"A", "IsEnable":false},{"Name":"B", "IsEnable":false}] as IBook[]);
}
isBookEligible(book: IBook): boolean {
return true; // hard coded for now because there is no implementation
}
ngOnInit(){
this.getBooksAsync.pipe(
tap((books) => {
books.forEach((book) => book.IsEligible = this.isBookEligible(book));
})
).subscribe(books => this.books = books);
}