小编use*_*867的帖子

打字稿.FormGroup FormArray - 按值删除一个元素对象.Angular 2 4

this.formGroup = this.formBuilder.group({
    images: this.fb.array([])
});
Run Code Online (Sandbox Code Playgroud)

我以这种方式添加新元素: this.images.push(new FormControl(new ImageCreateForm(this.imageResponse.id)));

get images(): FormArray {
    return <FormArray>this.formGroup.controls.images;
}
Run Code Online (Sandbox Code Playgroud)

我的课程:

export class ImageCreateForm {
    id: number;
    constructor(id: number) {
        this.id = id;
    }
}

export class ImageResponse {
    id: number;
    url: string;
}
Run Code Online (Sandbox Code Playgroud)

当我添加图像时,我的{{ formGroup.value | json }}是:

"images": [
   {
    "id": 501
   },
   {
    "id": 502
   },
   {
    "id": 503
   }
]
Run Code Online (Sandbox Code Playgroud)

我想在发送表单POST请求之前删除之前的图像(例如只有图像id=502)formGroup.可能吗?我试过使用reset方法,但这删除所有元素: this.images.reset({"id":image.id});.image它在哪里是一个ImageResponse对象.

结果:{"images": [ null, …

typescript angular angular-reactive-forms formarray

47
推荐指数
2
解决办法
3万
查看次数

Angular 2 4 HttpClient。POST请求-如何获取状态码

如何获取响应POST请求的状态码?我的服务方法返回:

return this.httpClient.post(url, body, {observe: 'response'})
            .catch(HandleError.handleErrorClient);
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我调用此方法并订阅:

    .subscribe(
        res => {
            console.log(res);
            console.log(JSON.stringify(res));
            this.responseStatus = res.status;
            console.log(this.responseStatus);
        },
        err => {
            this.responseStatus = err.status;
        });
Run Code Online (Sandbox Code Playgroud)

但是在浏览器控制台中没有任何内容-但是,当请求包含错误时,则this.responseStatus = err.status返回正确的状态代码,但是res.status或者res不包含状态代码,则仅返回响应主体。

编辑:

零件:

responseStatus: number;

loginUser() {
    this.loginData = this.loginForm.getRawValue();
    this.userLoginService.loginUser(this.loginData)
        .subscribe(
            res => {
                console.log('bla bla');
                this.responseStatus = res.status;
            },
            err => {
                console.log(err.status); //401
                console.log(err.error.error); //undefined
                console.log(JSON.parse(err.error).error); //unauthorized
                this.responseStatus = err.status;
            });
}
Run Code Online (Sandbox Code Playgroud)

服务:

import {Http} from "@angular/http";
import {HttpClient} from '@angular/common/http';

...

    constructor(private …
Run Code Online (Sandbox Code Playgroud)

angular angular-httpclient

5
推荐指数
0
解决办法
8165
查看次数

带有枚举的JpaRepository:findAllByOfferState_ACTIVE。NoSuchElementException

我想获得(StateState)等于ACTIVE的所有报价-是否可以仅使用方法名称使用Spring Data还是必须使用@Query

@Repository
public interface OfferRepository extends JpaRepository<Offer, Long> {
    Page<Offer> findAllByOfferState_ACTIVE(Pageable pageable);
}

public enum OfferState {
    ACTIVE, FINISHED
}

@Entity
@Table(name = "OFFERS")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Offer {

    @Id
    @GeneratedValue
    private Long id;

    [...]

    @Enumerated(EnumType.STRING)
    private OfferState offerState;
}

@Service
public class OfferServiceImpl implements OfferService {

    @Autowired
    private OfferRepository offerRepository;

    @Override
    public Offer saveOffer(Offer offer) {
        offer.setOfferState(OfferState.ACTIVE);
        return offerRepository.save(offer);
    }

    @Override
    public Page<Offer> getAllByPage(Pageable pageable) {
        Page<Offer> allByOfferState_active = offerRepository.findAllByOfferStateACTIVE(pageable);
        return allByOfferState_active;
    } …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

3
推荐指数
1
解决办法
1494
查看次数