(Угловая 6 + пружина) Значения формы null - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть приложение Angular с формгруппой для чего-то вроде экрана регистрации.Там все мои входные данные работают так:

<div id="form-group" class="left">
      <input
      [ngClass]="{ 'erros': groupForm.get('name').errors?.required && form.submitted }"   
      id="fullname"
      formControlName="name" 
      class="form-control" 
      placeholder="Name">
  </div>

Он работает безупречно, но есть определенное поле, которое никогда не отправляет никаких данных (поле такое же, как это, но это выборка:

 <div id="form-group" class="left">
      <select formControlName="entity">
          <option id = "zero" value="" disabled selected>Entity</option>
          <option id = "_1" value=0 >CT</option>
          <option id = "_2" value=1 >HP</option>
          <option id = "_3" value=2 >CM</option>
      </select>
  </div>

).Самое смешное, что когда я console.log () это из группы, вся моя информация там (даже сущность!).Но это не достигает базы данных (postgres, кстати).API - это Spring + Hibernate, и он имеет модель, ресурс и репозиторий для каждой таблицы в БД, их структура выглядит следующим образом:

Модель:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", unique = true, nullable = false)
private Integer id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "entity")
private Entity entity;

public GerProspect() {
    super();
}

Репозиторий:

public interface ProspectRepository extends JpaRepository<Prospect, Integer>{}

Ресурс:

@CrossOrigin("${origem-permitida}")
@RestController
public class ProspectResource {

    @Autowired
    private ProspectRepository ProspectRepository;

    @GetMapping("/Prospect")
    public List<Prospect> ListProspect(){   
    return ProspectRepository.findAll();
    }

    @GetMapping("/Prospect/{ProspectId}")
    public Prospect editProspect(@PathVariable Integer ProspectId) {
    return ProspectRepository.findById(ProspectId).get();
    }   

    @PostMapping("/Prospect")
    public Prospect addProspect(@RequestBody @Valid Prospect T) {
    return ProspectRepository.save(T);
    }

    @DeleteMapping("/Prospect")
    public Prospect remProspect(@RequestBody @Valid Prospect T) {

        ProspectRepository.delete(T);
        return ProspectRepository.findAll().stream().findAny().get();
    }

}

Я не являюсь автором этого API, но мне нужнов любом случаеВся моя информацияв форме formGroup является правильным и не нулевым, но только поле Entity никогда не заполняется.Я должен также сказать, что это конкретное поле является внешним ключом с той же структурой и этим списком <>:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "ConfigEntity", targetEntity= Prospect.class)
List<Prospect> Prospects = new ArrayList<Prospect>();

Я действительно не знаю почему, но это поле всегда равно нулю в БД.Что я здесь не так делаю?

1 Ответ

0 голосов
/ 06 декабря 2018

Прежде всего, у вас должен быть уникальный CSS внутри файла ( Должен ли ID быть уникальным на всей странице? ).Во-вторых, даже если в таблице БД, соответствующей таблице Prospect, поле «entity» - это просто Integer, внутри вашего Java-кода «entity» - это полный экземпляр класса Entity, а не просто Integer.Таким образом, вы либо отправляете через запрос полный объект Entity, либо отправляете только идентификатор, как вы пытались, но вы вручную извлекаете соответствующий Entity внутри контроллера и присоединяете его к экземпляру Prospect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...