GVKun编程网logo

asp-classic – If子句未按预期工作

16

以上就是给各位分享asp-classic–If子句未按预期工作,同时本文还将给你拓展agm-marker-cluster未按预期工作、Angular2验证器未按预期工作、c–vector::erase

以上就是给各位分享asp-classic – If子句未按预期工作,同时本文还将给你拓展agm-marker-cluster 未按预期工作、Angular 2验证器未按预期工作、c – vector :: erase()未按预期工作、ClangFormat参数和参数装箱设置未按预期工作等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

asp-classic – If子句未按预期工作

asp-classic – If子句未按预期工作

我有以下if子句:

if ucase(displayanzeige) = "Y" \
or isnull(displayanzeige)      \
and ucase(bstatus) = "2"       \
or ucase(bstatus) = "1"

if子句的第一部分正在工作:

if ucase(displayanzeige) = "Y" \
or isnull(displayanzeige)

但第二部分不起作用:

and ucase(bstatus) = "2"      \
or ucase(bstatus) = "1"

if子句有什么问题?请帮忙

解决方法

使用括号来帮助识别您的if条件:

if (ucase(displayanzeige) = "Y" or isnull(displayanzeige))
    and (ucase(bstatus) = "2" or ucase(bstatus) = "1")

你目前有:

1 or 2 and 3 or 4

系统可以将此解释为“1必须为真或2和3或4必须为真”

放置括号如下:

(1 or 2) and (3 or 4)

会告诉系统“1或2必须为真,3或4必须为真”

agm-marker-cluster 未按预期工作

agm-marker-cluster 未按预期工作

如何解决agm-marker-cluster 未按预期工作?

  1. 我正在使用 agm-marker-cluster 来处理多个标记。我面临的问题是页面加载集群无法识别所有标记,它在页面加载时识别其中一些标记,但是一旦我放大或缩小它就可以正常工作。我想念什么?有人可以帮我吗?

app.component.html

<agm-marker-cluster imagePath="assets/media/pins/cluster_pins/m">
   <agm-marker *ngFor="let device of devices" [iconUrl]="{url: device?.iconUrl}" 
               [latitude]="device?.latitude" [longitude]="device?.longitude"
               (markerClick)="onMarkerClicked(device?.deviceid,infoWindow)">
   </agm-marker>
</agm-marker-cluster>
  1. 如您所见,我正在动态显示标记,但无法提供更多代码。

app.component.ts

device: any [] = [];

this.devices = this.userServices.devices;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Angular 2验证器未按预期工作

Angular 2验证器未按预期工作

我有这个验证器:

export const PasswordsEqualValidator = (): ValidatorFn => {

  return (group: FormGroup): Observable<{[key: string]: boolean}> => {

    const passwordCtrl: FormControl = <FormControl>group.controls.password;
    const passwordAgainCtrl: FormControl = <FormControl>group.controls.passwordAgain;

    const valid = passwordCtrl.value.password === passwordAgainCtrl.value.passwordAgain;

    return Observable.of(valid ? null : {
      passwordsEqual: true
    });
  };
};

以这种形式使用:

public signupForm: FormGroup = this.fb.group({
    email: ['',Validators.required],passwords: this.fb.group({
      password: ['',passwordAgain: ['',Validators.required]
    },{validator: CustomValidators.passwordsEqual()})
  });

使用它的模板的一部分:

<div formGroupName="passwords">
  <div[ngClass]="{error: !signupForm.get('passwords').valid}">
    <labelfor="password">Password</label>
    <inputid="password" formControlName="password" type="password">
  </div>
  <div[ngClass]="{error: !signupForm.get('passwords').valid}">
    <labelfor="password-again">Password again</label>
    <inputid="password-again" formControlName="passwordAgain" type="password">
  </div>
</div>

问题是,即使密码匹配,它仍然显示错误.我看了很多不同的类似问题,但大多数人都有点混乱和过时,所以我想写一个更清洁的解决方案.

我猜测只需要一个小调整,但我似乎无法弄明白.

解决方法

试试这个,因为你需要比较2值并且验证器不是异步验证器,你只能返回boolean而不是Observable

export const PasswordsEqualValidator = (): ValidatorFn => {

  return (group: FormGroup): boolean => {

    const passwordCtrl: FormControl = <FormControl>group.controls.password;
    const passwordAgainCtrl: FormControl = <FormControl>group.controls.passwordAgain;

    const valid = passwordCtrl.value === passwordAgainCtrl.value;

    return valid ? null : {
      passwordsEqual: true
    };
  };
};

顺便说一下,使用这种方法进行最佳实践:

export const PasswordsEqualValidator = (): ValidatorFn => {

  return (group: FormGroup): boolean => {

    const passwordCtrl: FormControl = group.get('password');
    const passwordAgainCtrl: FormControl = group.get('passwordAgain');

    const valid = passwordCtrl.value === passwordAgainCtrl.value;

    return valid ? null : {
      passwordsEqual: true
    };
  };
};

这里演示:http://plnkr.co/edit/9PzGSIuBhvNz0fpJxTlS?p=preview

c – vector :: erase()未按预期工作

c – vector :: erase()未按预期工作

for(it1=prime.begin();it1<prime.end();it1++){
        for(it2=it1+1;it2<prime.end();it2++){

            if(*it2%*it1==0){

                prime.erase(it2);
            }

        }
        if(*it1<1000)
        prime.erase(it1);
    }

在上面的代码片段中,我删除的数字是素数向量2中已存在的数字的倍数到9999(Eratosthenes的筛子).另外我只有1000以上的数字,但不知何故这些数字都没有被删除.

有人可以解释一下为什么?

提前致谢.

解决方法

调用erase()会使迭代器无效.您应该使用返回值,它是删除元素之后的值的迭代器,例如

it2 = prime.erase(it2);

但是如果你做了这个改变(你必须这么做!),你需要从for循环中删除它.您还需要为它进行两项更改.这是一些未经测试的代码:

for (it1 = prime.begin(); it1 < prime.end();) {
    for(it2 = it1 + 1; it2 < prime.end();) {
        if (*it2 % *it1 == 0)
            it2 = prime.erase(it2);
        else
            ++it2;
    }
    if (*it1 < 1000)
        it1 = prime.erase(it1);
    else
        ++it1;
}

请注意,删除it2不会使it1无效,因为它严格地发生在it2之前,因为it2 = it1 1.所以你不必担心这种干扰.

ClangFormat参数和参数装箱设置未按预期工作

ClangFormat参数和参数装箱设置未按预期工作

简短的回答:不,clang-format不会做任何一个。

AlignConsecutiveDeclarations使参数声明对齐,而PointerAlignment控制声明中*&周围的间距。但是看来AlignConsecutiveDeclarations会忽略PointerAlignment,而PointerAlignment: Right实际上只是意味着“在*&之前添加一个空格”。

不幸的是,似乎没有一个documented。

对于for循环,您似乎需要一个名为AllowBinPackForLoop的假想新样式选项,该选项默认为true(以实现向后兼容性),但为false则允许for循环为就像您在询问是否需要多条线一样进行拆分。但是据我所知,没有那样的东西。

今天关于asp-classic – If子句未按预期工作的分享就到这里,希望大家有所收获,若想了解更多关于agm-marker-cluster 未按预期工作、Angular 2验证器未按预期工作、c – vector :: erase()未按预期工作、ClangFormat参数和参数装箱设置未按预期工作等相关知识,可以在本站进行查询。

本文标签: