小编mis*_*sar的帖子

角度2的"修剪"指令并反映对ngModel的更改

我想创建Angular 2指令,它将仅从用户输入到输入字段的文本的开头和结尾处确定空格.

我有输入字段

<input trim name="fruit" [(ngModel)]="fruit"/>
Run Code Online (Sandbox Code Playgroud)

和指令

import {Directive, ElementRef} from "@angular/core";

@Directive({
  selector: 'input[trim]',
  host: {'(blur)': 'onChange($event)'}
})

export class TrimWhiteSpace {

  constructor(private cdRef:ChangeDetectorRef, private el: ElementRef){}

  onChange($event:any) {
    let theEvent = $event || window.event;
    theEvent.target.value = theEvent.target.value.trim();
  }
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,删除空格并更改输入字段中的文本,但问题是ngModel变量"fruit"中的值没有更改,它仍然包含在开头或结尾处带空格的文本.

我还尝试在onChange方法中添加以下内容

this.el.nativeElement.value = theEvent.trim();
this.cdRef.detectChanges();
Run Code Online (Sandbox Code Playgroud)

并将表单(模糊)更改为(ngModelChange),但ngModel中的文本不受影响.

有什么建议?

angular-directive angular2-ngmodel angular

6
推荐指数
2
解决办法
2万
查看次数

角2路由器的通配符无法正常工作

如果我输入的结构类似localhost:3000 /某些东西,应用程序被正确地重定向到localhost:3000/login,但如果我以localhost:3000/something/something的形式输入URL,则应用程序崩溃,因为路由器没有正确重定向.

我像这样设置路由器文件:

@NgModule({
  imports: [
    RouterModule.forRoot([
      { path: '', redirectTo: '/login', pathMatch: 'full' },
      { path: 'login', component: LoginComponent },
      { path: '**', component: PageNotFoundComponent },
    ])
  ],
  exports: [
    RouterModule
  ]
})
export class AppRoutingModule {}
Run Code Online (Sandbox Code Playgroud)

我在我的Angular 2应用程序中使用HTML5 URL样式.

当他输入像localhost:3000/something/something这样的URL时,如何设置用于显示用户404页面的通配符?

angular2-routing angular

5
推荐指数
0
解决办法
624
查看次数