Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2018, 14:28
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

Angular 6 не могу в инпуте читать данные с объекта
в общем проблема у меня такая

кто может мне помочь с этим ?
присоеденяю код к топику

компонент формы
import { Component, OnInit } from '@angular/core';
import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
import { MovieRequestService } from '../../shared/services/movie-request.service';
import { HttpClient} from '@angular/common/http';
import {ActivatedRoute, Router} from '@angular/router';
import { FlashMessagesService } from 'angular2-flash-messages';

@Component({
  selector: 'app-edit-movie-modal',
  templateUrl: './edit-movie-modal.component.html',
  styleUrls: ['./edit-movie-modal.component.css']
})
export class EditMovieModalComponent implements OnInit {
  closeResult: string;
  movie: any = new Object();
  id: number;
  constructor(
              private modalService: NgbModal,
              private movieService: MovieRequestService,
              private flashMessage: FlashMessagesService,
              private http: HttpClient,
              private router: Router,
              private route: ActivatedRoute
  ) {
    this.getMovieDetails();
  }
  openBackDropCustomClass(content) {
    this.modalService.open(content, {backdropClass: 'light-blue-backdrop'});
  }
  ngOnInit() {
  }
  getMovieDetails () {
    // Get Id from URL
    this.id = this.route.snapshot.params['id'];
    this.movieService.getMovieDetails(this.id).subscribe(response => this.movie = response.data.movie);
  }
  onDelete () {
    if (confirm('Are you sure ???')) {
      this.movieService.deleteMovie(this.movie);
      this.flashMessage.show('Movie Removed Succes');
    }
  }
  onSave () {}
}


ХТМЛ страницы
<ng-template #content let-modal>
  <div class="modal-header">
    <h4 class="modal-title">Edit Movie</h4>
    <button type="button" class="close" aria-label="Close" (click)="modal.dismiss('Cross click')">
      <span aria-hidden="true">&times;</span>
    </button>
  </div>
  <div class="modal-body">
    <form #editMovieForm="ngForm" (ngSubmit)="onSave(editMovieForm)">
      <div class="form-group">
        <label for="title">Movie Title</label>
        <input
          type="text"
          name="title"
          id="title"
          class="form-control"
          [(ngModel)]="movie.title"
        >
      </div>
      <div class="form-group">
        <label for="year">Year</label>
        <input
          type="text"
          name="year"
          id="year"
          class="form-control"
          [(ngModel)]="movie.year"

        >
      </div>
      <div class="form-group">
        <label for="runTime">Run Time</label>
        <input
          type="text"
          name="runTime"
          id="runTime"
          class="form-control"
          [(ngModel)]="movie.runtime"
        >
      </div>
      <div class="form-group">
        <label for="genre">Genre</label>
        <input
          type="text"
          name="genre"
          id="genre"
          class="form-control"
          [(ngModel)]="movie.genres"
          value=""
        >
      </div>
      <div class="form-group">
        <label for="cast">Cast</label>
        <input
          type="text"
          name="cast"
          id="cast"
          class="form-control"
          [(ngModel)]="movie.cast"
        >
      </div>
      <div class="form-group">
        <label for="description">Description</label>
        <textarea
          class="form-control"
          id="description"
          name="description"
          [(ngModel)]="movie.description_full"
        ></textarea>
      </div>
      <input type="submit" class="btn btn-success" value="Save">
      <button
        type="button"
        class="btn btn-danger float-right"
        (click)="onDelete()"
      ><i class="far fa-trash-alt"></i> Remove</button>
    </form>
  </div>
</ng-template>
<button class="btn btn-light mb-2 mr-2" (click)="openBackDropCustomClass(content)">Edit Movie</button>

помогите плиз очень супер важно найти решение
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2018, 14:32
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Что содержится в поле cast объекта movie?
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2018, 14:38
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

Сообщение от destus Посмотреть сообщение
Что содержится в поле cast объекта movie?
"cast": [
{
"name": "Bruce Willis",
"character_name": "Det. Jack Mosley",
"url_small_image": "https://yts.am/assets/images/actors/thumb/nm0000246.jpg",
"imdb_code": "0000246"
},
{
"name": "David Morse",
"character_name": "Det. Frank Nugent",
"url_small_image": "https://yts.am/assets/images/actors/thumb/nm0001556.jpg",
"imdb_code": "0001556"
},
{
"name": "Casey Sander",
"character_name": "Capt. Dan Gruber",
"imdb_code": "0761389"
},
{
"name": "Tom Wlaschiha",
"character_name": "Bus Passenger",
"url_small_image": "https://yts.am/assets/images/actors/thumb/nm0937239.jpg",
"imdb_code": "0937239"
}
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2018, 14:39
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

на обычной странице я на каст делаю ngForm и вытаскиваю имя с объекта
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2018, 15:10
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Ну вы их можете привести к строке и записать в input, только какой в этом будет смысл? Если я изменю значение в этом input и сделаю save, то на сервер уйдет строка, а не объекты. Ну или перед сохранением делать обратную операцию, т.е. из строки => массив объектов. Вообще, на мой взгляд, здесь нужен multiselect, а не input.
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2018, 15:21
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

Сообщение от destus Посмотреть сообщение
Ну вы их можете привести к строке и записать в input, только какой в этом будет смысл? Если я изменю значение в этом input и сделаю save, то на сервер уйдет строка, а не объекты. Ну или перед сохранением делать обратную операцию, т.е. из строки => массив объектов. Вообще, на мой взгляд, здесь нужен multiselect, а не input.
можно плиз это более кодом, я просто только учусь и не все знаю как сделать
Ответить с цитированием
  #7 (permalink)  
Старый 01.10.2018, 17:00
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Можно завести переменную в компоненте (castText) и при получении данных для формы приводить ее к такому виду
this.movieService.getMovieDetails(this.id).subscribe(response => {this.movie = response.data.movie; this.castText = this.movie.cast.map(cast => cast['character_name']).join();});

Ну и в шаблоне соответственно
<input
          type="text"
          name="cast"
          id="cast"
          class="form-control"
          [(ngModel)]="castText"
        >
Ответить с цитированием
  #8 (permalink)  
Старый 01.10.2018, 17:52
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

не работает этот способ говорит дата андифайнд
Ответить с цитированием
  #9 (permalink)  
Старый 02.10.2018, 13:51
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Ну значит в response у вас что-то не то приходит. К моим добавкам кода это не имеет никакого отношения.
Ответить с цитированием
  #10 (permalink)  
Старый 02.10.2018, 20:38
Аспирант
Отправить личное сообщение для AnthonyFink Посмотреть профиль Найти все сообщения от AnthonyFink
 
Регистрация: 14.10.2017
Сообщений: 31

да все/ большое спасибо проблема решена
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу отправить данные с помощью XMLHttpRequest phenix79 Events/DOM/Window 16 15.01.2012 18:48
Не могу получить свойство объекта FINoM Общие вопросы Javascript 4 04.12.2011 04:46
Не могу вытащить массив из объекта по указателю из самого объекта bunta Общие вопросы Javascript 3 09.09.2010 18:44
Не могу выбрать данные с XML kill_windows AJAX и COMET 7 30.04.2010 12:13
Предполагается наличие объекта... не могу понять где косяк mp3moto Internet Explorer 3 18.06.2009 04:34