小编Agu*_*ive的帖子

检测底部滚动条

我正在做一些表单验证,但我被困在“条款和条件”页面上。我在屏幕底部固定了一个按钮(始终可见)和“条款和条件”文本。如果用户尚未滚动到文本底部,则该按钮将被禁用。但我不知道如何检查是否已到达文本底部......这就是我请求您帮助的原因。

先感谢您

编辑:我尝试了这样的事情(我在 StackOverflow 上找到的):

    @HostListener("window:scroll", ["$event"])
    onWindowScroll() {
      //In chrome and some browser scroll is given to body tag
      let pos = (document.documentElement.scrollTop || document.body.scrollTop) + document.documentElement.offsetHeight;
      let max = document.documentElement.scrollHeight;
      // pos/max will give you the distance between scroll bottom and and bottom of screen in percentage.
      if (pos == max) {
       console.log("done");
    }
  }
Run Code Online (Sandbox Code Playgroud)

还有另一件事,content.directionY但它对我不起作用

ionic3 angular

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

使用 Google Cloud 执行长时间运行的任务

我已经使用 Google Cloud 几个星期了,但由于我有限的 GCP 知识,我面临着一个大问题。

我有一个 python 项目,其目标是使用其 API 从网站“抓取”数据。我的项目在执行过程中运行了数万个请求,并且可能需要很长时间(几个小时,也许更多)

我的项目中有 4 个 python 脚本,它们都是由 bash 脚本编排的

执行如下:

  • 第一个脚本检查 CSV 文件,其中包含请求的所有说明,然后执行请求,将请求的所有结果保存在 CSV 文件中
  • 第二个脚本检查之前创建的 CSV 文件并重新创建另一个 CSV 指令文件
  • 第一个脚本再次运行,但使用新指令,并再次将结果保存在 CSV 文件中
  • 第二个脚本再次检查并再次执行相同操作...
  • ……如此反复几次
  • 第三个脚本清理数据、删除重复项并创建唯一的 CSV 文件
  • 第四个脚本将最终的 CSV 文件上传到存储桶

现在我想摆脱那个 bash 脚本,并且我想自动执行这些脚本。一个星期一次。

这里的问题是执行时间。这是我已经测试过的:

Google App Engine:GAE 上的请求超时限制为 10 分钟,而我的函数可以运行几个小时。GAE 在这里不可用。

Google 计算引擎:我的脚本最多可以运行。每周 10-15 小时,在这段时间里保持计算引擎运行的成本太高了。

我可以做什么来在云环境中自动执行脚本?在不更改代码的情况下,我没有想到的解决方案可能是什么?

谢谢

python google-app-engine google-compute-engine google-cloud-platform google-cloud-run

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

有没有办法防止 formControl 触发事件?

我有 3 个字段与类型为数字的表单相关联,当我修改字段 A 时,它会修改字段 B 和 C,当我修改字段 B 时,它会修改字段 A 和 C,当我修改字段 C 时,它会相应地修改字段 A 和 B。

我的组件如下:

this.form= this.formBuilder.group({
   fieldA: new FormControl(this.valueA),
   fieldB: new FormControl(this.valueB),
   fieldC: new FormControl(this.valueC),
});

onFieldAchanged() {
   //Do some calculs
   this.form.get('fieldB').setValue(x);
   this.form.get('fieldC').setValue(y);
}

onFieldBchanged() {
   //Do some calculs
   this.form.get('fieldA').setValue(x);
   this.form.get('fieldC').setValue(y);
}

onFieldCchanged() {
   //Do some calculs
   this.form.get('fieldA').setValue(x);
   this.form.get('fieldB').setValue(y);
}
Run Code Online (Sandbox Code Playgroud)

和我的模板如下:

<input formControlName="fieldA" type="number" class="form-control" (ngModelChange)="onFieldAchanged()"/>
<input formControlName="fieldB" type="number" class="form-control" (ngModelChange)="onFieldBchanged()"/>
<input formControlName="fieldC" type="number" class="form-control" (ngModelChange)="onFieldCchanged()"/>
Run Code Online (Sandbox Code Playgroud)

当您修改其中一个字段时,问题就会出现,它会进入一个循环并使应用程序崩溃。

我已经尝试emitEvent: false在我的中添加参数setValue()但它没有改变

所以我的问题:有没有办法防止触发其他功能?当我修改时,fieldA …

typescript ngrx angular

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

从正在运行的 python 实例中读取 k8s 部署标签

我有一个运行 Flask 应用程序的 k8s 部署,并且我要求该应用程序现在拥有自己的应用程序名称(位于 中metadata.labels.app)。然后我希望能够从正在运行的 Pod 中获取该信息,这可能吗?

我已经尝试bash进入正在运行的 Pod 并运行printenv,但没有有关精确部署的信息。

我还检查了 python 的 kubernetes 客户端,但似乎不可能仅获取有关当前部署的信息。

我错过了什么?有可能吗?

感谢您的帮助

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-app
    env: production
  name: my-app
  namespace: production
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
      env: production
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: my-app
        env: production
    spec:
      containers:
        - image: gcr.io/github.com/my-company/my-app
          imagePullPolicy: IfNotPresent
          name: my-app-1
          resources:
            limits:
              cpu: 100m
              memory: 200Mi
            requests:
              cpu: 10m …
Run Code Online (Sandbox Code Playgroud)

python kubernetes

0
推荐指数
1
解决办法
383
查看次数