小编Lpp*_*Edd的帖子

RxJS toArray 未被调用

我有一个 RxJS 序列如下:(
控制是一个 Angular FormControl

control.valueChanges.pipe(
    concatMap(cronExprs => from(cronExprs as Array<string>)),
    concatMap(cron => this.invokeCronService(cron)),
    toArray()
).subscribe(cronExprs => this.setCronExpressionModels(cronExprs))
Run Code Online (Sandbox Code Playgroud)

假设 cronExprs 数组有三个项目['..', '..', '..']。我可以看到,在调试时,concatMap(cron => this.invokeCronService(cron))clojure 被调用了 3 次,但从toArray未被调用过,显然 subscribe clojure 也从未被调用过。似乎序列没有正确完成。

invokeCronService 是:

private readonly invokeCronService =
    (cron: string): Observable<CronExpressionModel> =>
        this.cronService.describeCron(cron).pipe(
            map(result => result.get()),
            map((description): CronExpressionModel => ({ cron, description }))
        )
Run Code Online (Sandbox Code Playgroud)

describeCron 是一个简单的:

public describeCron(cronExpression: string): Observable<Result<string>> {
    return of(Result.valid('', cronExpression))
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

rxjs angular

4
推荐指数
1
解决办法
1793
查看次数

在Angular 7+项目中同时使用Sass(Scss)和Less

创建项目并指定CSS预处理程序非常简单

ng new my-app --style=scss
          ... --style=sass
          ... --style=less
Run Code Online (Sandbox Code Playgroud)

也将默认设置为现有项目

ng config schematics.@schematics/angular:component.styleext scss
                                                        ... sass
                                                        ... less
Run Code Online (Sandbox Code Playgroud)

但是,如果我想同时使用SassLess怎么办?
这可能吗?

我想这两个结合Ng-zorro,即用Less,以及Clarity,它使用Sass了自定义。

sass less angular-cli angular

4
推荐指数
1
解决办法
809
查看次数

Laravel - 模型 ID 保护

假设我们有一个 Topic 提交 html 表单,它使用以下输入字段名称:

name
text
Run Code Online (Sandbox Code Playgroud)

在控制器级别,我们可能已经写了这样的东西:

public function create(Request $request) {
   // Validation logic ...
   Topic::create($request->all());
}
Run Code Online (Sandbox Code Playgroud)

如果客户端用户添加id输入字段会怎样:

id
name
text
Run Code Online (Sandbox Code Playgroud)

Laravel 也会填充id新模型对象的字段吗?我可以保护id模型的 ,还是应该使用$request->only()

php laravel eloquent laravel-eloquent

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

Spring验证-类级别验证以解决字段错误

如果我们定义一个类级别的验证批注,例如一个比较字段并具有ConstraintValidator如下内容的批注:

public class ComparisonValidator implements ConstraintValidator<ValueMatches, Object>
{
    private String[] fields;

    @Override
    public void initialize(final ValueMatches constraintAnnotation) {
        fields = constraintAnnotation.fields();
    }

    @Override
    public boolean isValid(final Object value, final ConstraintValidatorContext context) {
        if (fields.length == 0) {
            return true;
        }

        final BeanWrapperImpl beanWrapper = new BeanWrapperImpl(value);
        final Object comparisonValue = beanWrapper.getPropertyValue(fields[0]);

        for (int i = 1; i < fields.length; i++) {
            final Object fieldValue = beanWrapper.getPropertyValue(fields[i]);

            if (!comparisonValue.equals(fieldValue)) {
                return false;
            }
        }

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们很好地产生了一个全局验证错误,可以通过Thymeleaf使用以下命令进行访问: …

java validation spring spring-validator

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

Rust手动内存管理

当我开始学习C时,我实现了常见的数据结构,如列表,地图和树.我用malloc,calloc,reallocfree请求时,手动管理内存.我用C++做了同样的事情,使用newdelete.

现在来了Rust.看起来Rust没有提供任何与C或C++相对应的函数或运算符,至少在稳定版本中是这样.

Heap结构和ptr模块(标记experimental)中的那些看对这种事情?

我知道这些数据结构已经在语言中.这是为了学习.

memory-management rust

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

Intellij IDEA - 如果有多个方法参数,则强制每个方法参数在其自己的行上

我想这样格式化我的 Java 方法:

public void methodWithOneParameter(final String one) {
   ...
}

public void methodWithMultipleParameters(
     final String one,
     final String two) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

不考虑硬包裹设置。这可能吗?
我在2018.2 EAP(最新)

java code-formatting intellij-idea

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

Instance#get() 是否为 CDI 中的 @ApplicationScoped beans 返回相同的实例?

如果@ApplicationScoped通过 获取 bean Instance<T>#get(),后续调用是否会get()重用同一实例(我确信ProxyObject使用了相同的实例)?

java cdi

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

Typescript类属性的初始化顺序

假设我有一个课程,例如:

class MyClass {
   private readonly prop1 = "prop1"
   private readonly prop2: string

   constructor(
     prop2 = "defaultProp2",
     private readonly prop3 = "defaultProp3"
   ) {
     this.prop2 = prop2
   }

   ...
}
Run Code Online (Sandbox Code Playgroud)

变量的初始化顺序是什么?

typescript

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

Angular - 使用组件作为弹出组件和常规组件

是否可以将单个组件同时用作弹出组件和常规组件?

因为需要在构造函数中添加声明该组件为弹出组件

constructor(
     private dialogRef: MatDialogRef,
     @Inject(MAT_DIALOG_DATA) public data: any
) {} 
Run Code Online (Sandbox Code Playgroud)

类似的事情。
因此,如果该值null适用于 @Inject,则注入必须具有某些值。

popup angular-material angular

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

switchMap 到 switchMapTo

目前我有这段代码

this.save()
  .pipe(switchMap(() => this.unlock()))
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)

saveunlock实现是

private save(): Observable<void> {
  return new Observable(subscriber => {
    this.xmlService.save(..., () => {
      ...       
      subscriber.next();
      subscriber.complete();
    });
  });
}

private unlock(): Observable<void> {
  return this.httpService.unlock(this.id);
}
Run Code Online (Sandbox Code Playgroud)

由于这unlock并不真正依赖于值save返回,我可以使用吗switchMapTo

this.save()
  .pipe(switchMapTo(this.unlock()))
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)

或者我误解了*To变体的行为方式?

rxjs typescript

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