我对弹性搜索世界很新.
假设我在两个字段上有一个嵌套聚合:field1
和field2
:
{
...
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) 我已经使用 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)
我了解每种方法的作用,但我无法找出最佳实践。
我知道这可能是主观意见,但我认为两者都有优点和缺点。
感谢您的任何解释。
我正在寻找一个符合nexus标准的存储库,我可以在其中获得一个节点安装程序(符合nexus标准的替代http://nodejs.org/dist/).
背景:
在java环境中,我们的构建由maven处理.最近我们添加了一个javascript前端应用程序,我试图通过maven与优秀的插件frontend-maven-plugin构建它.
插件安装节点和npm,然后运行npm install
和grunt build
.一切都很完美.
但我们必须将所有依赖项放在nexus(或一些本地代理的存储库)下.
关于前端依赖:没问题,因为nexus 2.10支持npm注册表.有用.
关于node和npm安装程序,它们最初是通过插件从http://nodejs.org/dist/下载的,我不知道如何本地代理这个repo ...或者我可以在nexus上找到这些安装程序的地方 - 合规的.
有什么建议 ?
谢谢.
目前是 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)
我的目标是 ES2021 或更低版本,这非常有效。我收到警报 A 和 B,但 cli 没有发出任何警告。
我的目标仍然是 ES2021,它仍然有效。我收到警报 A 和 B
但cli 警告我它覆盖了一些设置。
TypeScript compiler …
Run Code Online (Sandbox Code Playgroud) 参考:http://jsfiddle.net/CZk8L/4/
任何人都可以向我解释为什么overflow:hidden
风格会在第一个底部产生这个额外的空间li
?
这让我疯狂了好几个小时.
事实是我需要position:relative; overflow:hidden
第一个li
因为form
我想要隐藏并移动它(跟随光标).
我尝试设置一些height
或max-height
每个元素,但它不起作用.我也尝试了一些line-height
重新对齐两者的解决方案li
可能是position:relative; overflow:hidden
在第二个上添加相同的li
,但它仍然是它们下面的额外空间,我想了解根本原因.
谢谢你的帮助!
在迁移到 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()
......
提前致谢
这段代码适用于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) 引用: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)