小编Ser*_*lov的帖子

角.有没有办法在初始渲染时跳过输入动画?

:enter第一次渲染组件时,动画将应用于元素.有没有办法防止它?

检查此plunker以获取width动画的简单示例:

transition(':enter', [
  style({width: 0}),
  animate(250, style({width: '*'})),
]),
Run Code Online (Sandbox Code Playgroud)

angular2-animation angular

16
推荐指数
2
解决办法
2526
查看次数

zone.js/dist/zone-patch-rxjs的用途

可能我对问题太迟了,但无论如何.

有人可以解释我在什么情况下我需要导入区域的补丁 - zone.js/dist/zone-patch-rxjs.据我所知,补丁被添加到这个PR(这个的继承者).

我使用zoneRxJs在我的Angular项目中,尽管make rxjs run in correct zone在PR的描述中看到我不完全理解它何时可以帮助我或它应该为我解决什么问题.

我会很感激像之前/之后的一些代码示例.

提前致谢.

rxjs zone.js angular

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

把孩子变成父母

我在底部嵌套了带有文本的flex元素.顶部元素的固定宽度小于文本:

.list-header {
  display: flex;
  width: 150px;
  height: 80px;
  background-color: #ececec;
}

.list-component {
  display: flex;
  flex: 1;
  padding-left: 24px;
  padding-right: 24px;
}

.header-container {
  display: flex;
  flex: 1;
}

.header-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}

span {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
<div class="list-header">
  <div class="list-component">
    <div class="header-container">
      <div class="header-text">
        <span>long long long long long long text</span>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我可以通过应用于overflow: hidden;所有元素来解决这个问题:

.list-header {
  display: flex;
  width: 150px;
  height: …
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

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

在Angular 2中异步验证表单字段(在HTTP请求之后)

我们的想法是让用户POST表单.并触发API返回的错误,如果用户已经注册,则将电子邮件字段设置为错误.

我使用FormBuilder的反应形式,我尝试在订阅错误捕获器中调用验证器:

构造函数:

this.email = fb.control('', [Validators.required, Validators.pattern(/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/), SignupComponent.alreadyExist()]);
this.username = fb.control('', [Validators.required, Validators.pattern(/^([A-ZÀ-ÿa-z0-9]{2,})+(?:[ _-][A-ZÀ-ÿa-z0-9]+)*$/)]);

this.userRegisterForm = fb.group({
    email: this.email,
    username: this.username
});
Run Code Online (Sandbox Code Playgroud)

自定义alreadyExist()验证器:

static alreadyExist(alreadyExist: boolean = false): any {

    return (control: FormControl): { [s: string]: boolean } => {

        if(alreadyExist) {
            return { emailAlreadyExist: true }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

onSubmit():

this.user.create(newUser)
    .subscribe(
        data => {
            this.router.navigate(['signin']);
        },
        error => {
            if(error.status === 401) {

                // CALL THE VALIDATOR HERE TO SET : FALSE
                SignupComponent.alreadyExist(true);
            }

            this.loading = …
Run Code Online (Sandbox Code Playgroud)

customvalidator formbuilder typescript angular

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