小编M's*_*ph'的帖子

Elasticsearch过滤最小文档计数的聚合

我对弹性搜索世界很新.

假设我在两个字段上有一个嵌套聚合:field1field2:

{
    ...
    aggs: {
        field1: {
            terms: {
                field: 'field1'
            },
            aggs: {
                field2: {
                    terms: {
                        field: 'field2'
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码完美无缺,给我这样的东西:

aggregations: {
    field1: {
        buckets: [{
            key: "foo",
            doc_count: 123456,
            field2: {
                buckets: [{
                    key: "bar",
                    doc_count: 34323
                },{
                    key: "baz",
                    doc_count: 10
                },{
                    key: "foobar",
                    doc_count: 36785
                },
                ...
                ]
        },{
            key: "fooOO",
            doc_count: 423424,
            field2: {
                buckets: [{
                    key: "bar",
                    doc_count: 35
                },{
                    key: "baz",
                    doc_count: …
Run Code Online (Sandbox Code Playgroud)

filtering aggregation elasticsearch

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

通过构造函数参数注入与注入器服务的注入

我已经使用 Angular2/4 几个月了,但我仍然无法弄清楚这两种方法之间有什么区别,以及关于依赖注入我应该使用哪一种

你能帮我吗。

第一种方法:通过构造函数

...
  constructor(
    private myService: MyService
  ) { 
    // this.myService.myMethod() ...
  }
...
Run Code Online (Sandbox Code Playgroud)

第二种方法:通过注射器

...
  private myService: MyService;

  constructor(
    injector: Injector
  ) {
    this.myService = injector.get(MyService);
    // this.myService.myMethod() ...
  }
...
Run Code Online (Sandbox Code Playgroud)

我了解每种方法的作用,但我无法找出最佳实践。

我知道这可能是主观意见,但我认为两者都有优点和缺点。

感谢您的任何解释。

dependency-injection angular

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

符合Nexus标准的存储库,用于获取节点和npm安装程序

我正在寻找一个符合nexus标准的存储库,我可以在其中获得一个节点安装程序(符合nexus标准的替代http://nodejs.org/dist/).

背景:

在java环境中,我们的构建由maven处理.最近我们添加了一个javascript前端应用程序,我试图通过maven与优秀的插件frontend-maven-plugin构建它.

插件安装节点和npm,然后运行npm installgrunt build.一切都很完美.

但我们必须将所有依赖项放在nexus(或一些本地代理的存储库)下.

  • 关于前端依赖:没问题,因为nexus 2.10支持npm注册表.有用.

  • 关于node和npm安装程序,它们最初是通过插件从http://nodejs.org/dist/下载的,我不知道如何本地代理这个repo ...或者我可以在nexus上找到这些安装程序的地方 - 合规的.

有什么建议 ?

谢谢.

package-managers nexus maven node.js npm

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

带有针对 ES2022 的 Angular (15) 的 ClassDecorator

目前是 2023 年 3 月,我正在寻找一种方法让我的类装饰器以正确的方式工作,而不需要来自 cli 的警告。

这是我的简单代码:

function MyDecorator(myConstructor: new (...args: any[]) => any): new (...args: any[]) => any {
  alert('MyDecorator EVALUATE'); // -------------> Alert A
  return class extends myConstructor {
    constructor(...args) {
      super(...args);
      alert('MyDecorator CONSTRUCTOR'); // ------------> Alert B
    }
  };
}

@MyDecorator
@Component({
  // ...
})
export class AppComponent() {
  // ...
} 
Run Code Online (Sandbox Code Playgroud)

Angular 15 之前:

我的目标是 ES2021 或更低版本,这非常有效。我收到警报 A 和 B,但 cli 没有发出任何警告。

使用 Angular 15:

我的目标仍然是 ES2021,它仍然有效。我收到警报 A 和 B

cli 警告我它覆盖了一些设置。

TypeScript compiler …
Run Code Online (Sandbox Code Playgroud)

decorator tsconfig angular-cli angular es2022

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

使用溢出时的额外空间:隐藏在内联块列表中

参考:http://jsfiddle.net/CZk8L/4/

任何人都可以向我解释为什么overflow:hidden风格会在第一个底部产生这个额外的空间li

这让我疯狂了好几个小时.

事实是我需要position:relative; overflow:hidden第一个li因为form我想要隐藏并移动它(跟随光标).

我尝试设置一些heightmax-height每个元素,但它不起作用.我也尝试了一些line-height

重新对齐两者的解决方案li可能是position:relative; overflow:hidden在第二个上添加相同的li,但它仍然是它们下面的额外空间,我想了解根本原因.

谢谢你的帮助!

html css space css-position

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

Angular/RxJS 6 - 如何对 next() 触发的指令引发异常进行单元测试

在迁移到 RxJs6 之前,我的单元测试之一是:

it('should do what I expect, () => {
  expect(() => {
    myComponent.mySubject.next({message: 'invalid'});
  }).toThrow('invalid is not an accepted message');
})
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我订阅了主题并调用了一个可以抛出异常的私有方法。看起来像这样的东西:

export class MyComponent {
  //...
  mySubject = new Subject();
  //...
  ngOnInit(){
    this.mySubject.subscribe(obj => this._doSomething(obj))
  }
  //...
  private _doSomething(obj) {
    if ('invalid' === obj.message) {
      throw new Error('invalid is not an accepted message');
    }
    //...
  }
}
Run Code Online (Sandbox Code Playgroud)

自从我迁移到 RxJs6 以来,这个 UT 不再工作(以前工作过),我不知道如何使它工作。

我阅读了迁移指南,尤其是本节:替换同步错误处理,但它是关于subscribe(),而不是next()......

提前致谢

unit-testing throw jasmine rxjs angular

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

在对象类型为ngModel的值上使用$ formatter,角度为1.2,但不是1.3版本

这段代码适用于angular-1.2.26,但不适用于angular-1.3.0.rc5(或我试过的任何1.3.x版本).

我在angular的github上发现了这个问题https://github.com/angular/angular.js/issues/9218,但是我不熟悉github接口,我无法弄清楚bug是否被确认或是否有预期的行为,如果它已被修复; 如果是,我应该采取什么版本.

JSFiddles:

对于每一个,我希望在加载页面时在输入中有"我的标签".它适用于第一个,但不适用于第二个.

然后查看控制台以查看传递给formatter的值.

HTML:

<div ng-controller="ctrl as c">
    <input my-dir ng-model="c.foobar" />
    <pre>{{c.foobar | json}}</pre>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

var app = angular.module('app', []);

app.controller('ctrl', function(){
    this.foobar = {
        value : 'my value',
        label : 'my label'
    }
})


.directive('myDir', function(){
    return {
        restrict :'A',
        require:'ngModel',
        link : function(scope, elt, attrs, modelCtrl){

            // conversion "view -> model"
            modelCtrl.$parsers.unshift( function(value){
                console.log('Value:', value);
                return {label:value, value:value};
            })

            // conversion "model -> view"
            modelCtrl.$formatters.unshift(function formatter(modelValue){
                console.log('modelValue:', modelValue);
                return …
Run Code Online (Sandbox Code Playgroud)

javascript parsing angularjs angular-ngmodel

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

当FormArray嵌套在另一个FormArray中时,如何获取FormArrayName?

引用:https : //angular.io/docs/ts/latest/api/forms/index/FormArrayName-directive.html ://angular.io/docs/ts/latest/api/forms/index/FormArrayName-directive.html,很容易获得FormArrayName:

HTML:

<form [formGroup]="form" (ngSubmit)="onSubmit()">
  <div formArrayName="cities">
    <div *ngFor="let city of cities.controls; index as i">
       <input [formControlName]="i" placeholder="City">
    </div>
  </div>
  <button>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

TS:

form = new FormGroup({
  cities: new FormArray([
    new FormControl('SF'),
    new FormControl('NY'),
  ]),
});

get cities(): FormArray { return this.form.get('cities') as FormArray; } 
// This does the magic!
Run Code Online (Sandbox Code Playgroud)

DOM <div formArrayName="cities"> 使用吸气剂 get cities(): FormArray { return this.form.get('cities') as FormArray; } ,一切都像魅力一样工作

当FormArray嵌套在另一个FormArray中时,如何进行吸气剂处理?

假设这个例子:

TS:

form = new FormGroup({
  cities: new FormArray([
    new …
Run Code Online (Sandbox Code Playgroud)

forms arrays getter nested angular

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