我有这个
https://angular-dynamic-component-append.stackblitz.io/
我设法动态附加了一个元素,但它没有被编译。我看到很多教程像这样
但这并不是我真正需要的。他们经常使用标签符号来识别容器。
我需要将一个组件附加到任何可能包含我的自定义指令的元素。
我还需要使用指令的绑定值来控制附加元素上的 [hidden] 属性。
目标
<my-comp></mycomp>预期来源
<div [myDirective]="myBoolean">
<p>some content</p>
</div>
Run Code Online (Sandbox Code Playgroud)
预计编译
<div [myDirective]="myBoolean" class="myDirectiveClass1">
<p>some content</p>
<someComponent [hidden]="myBoolean" class="myDirectiveClass2"></someComponent>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这一目标?
先感谢您
我试图在打字稿类中进行严格的排序,强制对组进行精确的排序,特别是我想强制按字母顺序排序。
我正在遵循此文档来实现我所需要的:https://typescript-eslint-armano.netlify.app/rules/member-ordering/#sorting-alphabetically-within-member-groups
这是我的 .eslintrc 配置提取的成员排序配置
"@typescript-eslint/member-ordering": [
"error",
{
"default": {
"memberTypes": [
"public-static-field",
"protected-static-field",
"private-static-field",
"public-instance-field",
"public-decorated-field",
"public-abstract-field",
"protected-instance-field",
"protected-decorated-field",
"protected-abstract-field",
"private-instance-field",
"private-decorated-field",
"private-abstract-field",
"static-field",
"public-field",
"instance-field",
"protected-field",
"private-field",
"abstract-field",
"constructor",
"public-static-method",
"protected-static-method",
"private-static-method",
"public-method",
"protected-method",
"private-method"
],
"order": "alphabetically"
}
}
],
Run Code Online (Sandbox Code Playgroud)
这不会在我的类中产生任何错误,而我预计会出现 2 个错误:错误的成员排序(私有应该在公共之后)和错误的字母顺序。
Eslint 运行良好,因为我遇到了其他错误,例如命名约定等
我正在使用一些API,我注意到在响应中我有这个:
我需要阅读"x-dl-units-left",但我得到null:
$.ajax(ajaxConfig).done(function(response, textStatus, xhr){
var left = xhr.getResponseHeader("x-dl-units-left"); //null
var all = xhr.getAllResponseHeaders(); // "content-type: application/json;charset=UTF-8"
});
Run Code Online (Sandbox Code Playgroud)
谁可能知道为什么?:(
谢谢
我创建了这样的课程
@Injectable FooService {
constructor(private _bar:BarService){
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样扩展它
@Injectable ExtFooService extends FooService {
constructor(private _bar:BarService){
super(_bar);
}
}
Run Code Online (Sandbox Code Playgroud)
这样,我得到以下错误:
错误:(12、14)TS2415:Class'ExtFooService'错误地扩展了基类'FooService'。类型具有私有属性“ _bar”的单独声明。
为什么?
我试着从ExtFooService中删除注入,但是我得到了这一点super():
错误:(21,9)TS2554:期望2个参数,但得到0。
我真的有必要这样做吗?
@Injectable ExtFooService extends FooService {
constructor(private _extBar:BarService){
super(_extBar);
}
}
Run Code Online (Sandbox Code Playgroud) 定制组件
// ...
@Output() submit: EventEmitter < any > = new EventEmitter();
// ...
onFilterSubmit($event): void {
this.submit.emit($event);
this.formData = {
minDate: new Date().toISOString(),
maxDate: new Date().toISOString()
};
}Run Code Online (Sandbox Code Playgroud)
<form (ngSubmit)="onFilterSubmit(formData)">
<!-- -- -->
<button mat-button
mat-raised-button
[disabled]="reqsForm.form.invalid"
type="submit"
color="primary">
{{labels.submit}}
</button>
</form>Run Code Online (Sandbox Code Playgroud)
外部组件
// ...
onFilterSubmit($event): void {
console.info("FORM SUBMIT", $event);
}Run Code Online (Sandbox Code Playgroud)
<custom-component (submit)="onFilterSubmit($event)">
<!-- -- -->
</custom-component>Run Code Online (Sandbox Code Playgroud)
输出
FORM SUBMIT > Object
FORM SUBMIT > Object
我正在使用Angular 5构建一些应用程序(是的,不止一个).我正在尝试遵循所有Angular dos和don'ts
但我无法理解一些事情
1)这个之间的区别......
this._http.get<User>(this._ubiRest.servicesUrls.getUser)
Run Code Online (Sandbox Code Playgroud)
...还有这个
this._http.get(this._ubiRest.servicesUrls.getUser)
Run Code Online (Sandbox Code Playgroud)
如果反正我必须使用map方法来强制转换为User(或者我可能不会?)
2)在服务中这样做会更好......
getUserData(): Observable<User> {
return new Observable((observable) => {
if (!!this._loggedUser) {
observable.next(this._loggedUser);
observable.complete();
}
else {
this._http.get(this._ubiRest.servicesUrls.getUser)
.map(this._extractData)
.subscribe(user => {
this._loggedUser = user;
observable.next(user);
observable.complete();
}, this._handleError);
}
})
}
Run Code Online (Sandbox Code Playgroud)
...或这个?
getUserDataX(): Observable<User> {
if (!!this._loggedUser) {
return new Observable(observable => {
observable.next(this._loggedUser);
observable.complete();
});
}
else {
return this._http.get<User>(this._ubiRest.servicesUrls.getUser)
.map(this._extractData)
.catch(this._handleError);
}
}
Run Code Online (Sandbox Code Playgroud) angular5 ×4
typescript ×4
angular ×2
ajax ×1
components ×1
eslint ×1
events ×1
extends ×1
javascript ×1
jquery ×1
jqxhr ×1
json ×1
observable ×1
output ×1
rest ×1
rules ×1