标签: angular7

错误TypeError:jit_nodeValue_11(...)不是Object.eval上的函数[作为handleEvent](HomeComponent.html:77)

我正在使用Anugular 7和角材。我目前在尝试通过提交表单时遇到错误

(ngsubmit)=“ changePassword(formData)”

页面上的其他ngSubmit都可以正常工作,提交时没有问题。只是想知道是否有人遇到过此问题/知道解决方案。

home.component.html(代码段)

<ng-template #changePassword let-c="close" let-d="dismiss">
    <div class="modal-header">
        <h4 class="modal-title">Change Password</h4>
        <button type="button" class="close" (click)="d('Cross Click')">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
    <div class="modal-body">
        <div *ngIf="msg" role="alert" class="alert alert-success alert-dismissible">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <mat-icon>done</mat-icon>
            <span class="sr-only">Error:</span>
            {{modalMsg}}
        </div>
        <form novalidate (ngSubmit)="changePassword(changePasswordFrm)" [formGroup]="changePasswordFrm">
            <div class="form-group">
                <div>
                    <span>Email Address*</span>
                    <input type="text" class="form-control" value="{{emailAddress}}" readonly formControlName="EmailAddress" />
                </div>
                <div>
                    <span>Old Password*</span>
                    <input type="password" class="form-control" value="{{password}}" readonly formControlName="OldPassword" />
                </div>
                <div>
                    <span>New Password*</span>
                    <input type="password" class="form-control" placeholder="New Password" formControlName="NewPassword" …
Run Code Online (Sandbox Code Playgroud)

angular7 angular-material-7

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

Angular Material Snackbar没有正确显示

Stackblitz示例

嗨,社区,我为我的angular 7项目实现了一个全局错误处理程序和一个全局加载组件(角度材料微调器)。当检测到HttpErrorResponse时,应卸下装载程序,并显示有角度的材料小吃吧。

快餐栏应在页面底部打开,单击“ x”时应关闭。

但相反,它在左上方打开。

在此处输入图片说明

单击“ x”时,它将关闭并在预期位置再次打开。但随后,它不再对点击做出反应。单击“ x”,然后单击窗口的其他位置后,它消失。

卸下加载微调器时,也会显示此行为。

有人知道如何解决这个问题吗?非常感谢你。

angular-material snackbar angular angular7

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

更新到angular 7后出错。'string |类型的参数 ArrayBuffer'不能分配给'string'类型的参数

我将项目从angular 6升级到了angular7。我的项目中有一个文件上传组件。升级后会出现编译器错误。

onUpload() {
    const fileReader = new FileReader();
    fileReader.onload = () => this.uploadFile(fileReader.result);
    fileReader.readAsText(this.fileToUpload);
}

uploadFile(fileContent: string) {
    //upload
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,this.uploadFile(fileReader.result)给出以下错误。

错误TS2345:“字符串|类型”的参数 ArrayBuffer'不能分配给'string'类型的参数

的类型fileReader.resultstring | ArrayBuffer,表示无法将其分配给string。如何将string | ArrayBuffer类型转换为string

javascript angular angular7

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

带解析器的Angular 7路线不会加载组件

我遇到了一个Angular 7问题,该问题是在路由上具有解析器的模块的子组件无法加载。

app-routing.module.ts

{
  path: 'Account',
  loadChildren: './account/account.module#AccountModule'
}
Run Code Online (Sandbox Code Playgroud)

account-routing.module.ts

{
  path: 'Profile',
  component: ProfileComponent,
  resolve: {
    profile: ProfileResolver
  }
}
Run Code Online (Sandbox Code Playgroud)

profile.resolver.ts

@Injectable()
export class ProfileResolver implements Resolve<Profile> {

  constructor(private readonly accountService: AccountService) {
  }

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Profile> {
    return this.accountService.profile();
  }
}
Run Code Online (Sandbox Code Playgroud)

profile.component.ts

@Component({
?
})
export class ProfileComponent implements OnInit {

  model: Profile;

  constructor(private readonly route: ActivatedRoute) {
  }

  ngOnInit(): void {
    this.model = this.route.snapshot.data['profile'] as Profile;
  }
}
Run Code Online (Sandbox Code Playgroud)

account.service.ts

@Injectable()
export class AccountService {

  constructor(protected …
Run Code Online (Sandbox Code Playgroud)

rxjs angular angular7

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

Angular7:无法设置{responseType:'text'}

场景:从Angular7调用API时,我正在调用Node(通过express)并返回字符串类型的分块数据-我想捕获此字符串数据并将其显示为字符串

服务器端: 从Node后端发送的数据是“文本”而不​​是json ...数据是通过多个res.write('somestring')语句发送的

客户端在Angular中: 我想要一个可观察的对象来处理此数据...

  1. 当我不提及任何responseType [返回this.http.get(this.streamURL);] ...时,我得到了错误:

SyntaxError:意外令牌{在JSON.parse()位置12的JSON中

stackBlitz上的错误以及ng服务上编译时的类似错误

  1. 当我不提及responseType为'text [返回this.http.get(this.streamURL,{responseType:'text'});] ...编译时出现错误:

src / app / myS.service.ts(24,54)中的错误:错误TS2322:无法将类型“文本”分配给类型“ json”

我如何从Node JS后端捕获“文本”数据...我在Node中使用npm cors,所以那里没有CORS错误

此处提供演示代码https : //stackblitz.com/edit/angular-44sess

的后端在以下代码段中:

app.get('/obs/responseWrite', cors(), function(req, res){
  var j=0;
  
  const headers = { 
    'Content-Type': 'text',     
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'OPTIONS, POST, GET',
    'Access-Control-Max-Age': 2592000, // 30 days
  };
  res.writeHead(200,headers);
  
  for(var i=0; i<50000; i++){
    /* setInterval(function() {    res.write("returning j:["+ j + "]. "); j=j+1; if(j>=100){res.end();} }, 1000); */
    var myObj =  { return …
Run Code Online (Sandbox Code Playgroud)

chunked node.js angular angular7

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

错误:预期对标准“按功能匹配:”的一个匹配请求,未找到

我有一个userService.spec.ts要测试的文件。代码就是这样。它调用了一个get函数,该函数调用了ADMIN_API_URL。我尝试测试给定的文件,但标题中提到了错误。我的user.service.spec.ts文件。

 describe('Service: User service', () => {
 let httpMock: HttpTestingController;
 let userService: UserService;
 let url: string;

  beforeEach(() => {
   TestBed.configureTestingModule({
    imports: [HttpClientTestingModule],
     providers: [
    { provide: AUTH_API_URL, useValue: 'https://auth.example.com/api/' 
      },
    { provide: SSO_API_URL, useValue: 'https://sso.example.com/auth/api/' },
    { provide: WIT_API_PROXY, useValue: 'https://wit.example.com/api/'},
    { provide: ADMIN_API_URL, useValue: 'https://admin.example.com/api/'},
    { provide: REALM, useValue: 'realm' },
    Broadcaster,
    Logger,
    AuthenticationService,
    HttpHandler,
    UserService
  ]
});
httpMock = TestBed.get(HttpTestingController);
url = TestBed.get(ADMIN_API_URL);
userService = TestBed.get(UserService);
 });

 it('Get user by user name …
Run Code Online (Sandbox Code Playgroud)

unit-testing karma-jasmine angular6 angular7

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

Angular2-如何在* ngIf中使用字符串枚举

在Angular中enum使用时如何传递给函数*ngIf

我有以下代码:

export enum RoleType {
    User='User',
    Admin='Admin'
}
Run Code Online (Sandbox Code Playgroud)

组件功能

public hasAccess(role: RoleType) {
   //check role type and return true or false
}
Run Code Online (Sandbox Code Playgroud)

组件html

<div id="adminDiv" *ngIf="hasAccess('Admin')">
</div>
Run Code Online (Sandbox Code Playgroud)

当我构建它时,它一直在抱怨。它不能将字符串转换为枚举,是否有办法解决?

enums typescript angular angular7

2
推荐指数
3
解决办法
1949
查看次数

循环数组并返回Observable中每个id的数据

使用RxJS v6很难从子集合中检索循环中每个项目的数据。无法迭代从HTTP调用检索的throw数组。合并映射仅对需要在所有数组项目上执行的单个项目执行此操作。

我已经坚持了三天。我已经尝试了一切。问题在于,新的管道语法在为您提供组织代码的巧妙方法的同时,没有简单的方法来循环引发数据收集。无法使用地图javascript函数,因为它在可观察范围之外并且返回的项目不确定。在互联网上,我只能找到一个很好的单个mergeMap的基本示例。但是,我需要使用带有http调用的数组中的每个项目,并将响应附加到同一对象。

我从第三方无法控制的两个端点开始。我嘲笑了一些示例API来说明。

端点1-返回所有项目ID: http:// localhost:3000 / contact

{
  "name": "test",
  "contact": [
    {
      "_id": "5c9dda9aca9c171d6ba4b87e"
    },
    {
      "_id": "5c9ddb82ca9c171d6ba4b87f"
    },
    {
      "_id": "5c9ddb8aca9c171d6ba4b880"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

端点2-返回单个项目信息: http:// localhost:3000 / contact / 5c9dda9aca9c171d6ba4b87e

[
   {
     "_id": "5c9dda9aca9c171d6ba4b87e",
     "firstName": "Luke",
     "lastName": "Test",
     "email": "vgadgf@adsgasdg.com",
     "created_date": "2019-03-29T08:43:06.344Z"
   }
]
Run Code Online (Sandbox Code Playgroud)

期望的结果-通过使用RxJs v6 +返回带有嵌套数据的Observable:

{
  "name": "test",
  "contact": [
    {
      "_id": "5c9dda9aca9c171d6ba4b87e".
      "relationship":  {
                         "_id": "5c9dda9aca9c171d6ba4b87e",
                         "firstName": "Luke",
                         "lastName": "Test",
                         "email": "vgadgf@adsgasdg.com",
                         "created_date": "2019-03-29T08:43:06.344Z"
                       }
    },
    {
      "_id": "5c9ddb82ca9c171d6ba4b87f",
      "relationship": {
                         "_id": …
Run Code Online (Sandbox Code Playgroud)

observable rxjs angular rxjs6 angular7

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

Angular 7:如何获取当前页面的完整URL

如何在不使用angular 7的情况下获取完整的当前URL window.location.href

例如,假设我当前的网址是 http://localhost:8080/p/drinks?q=cold&price=200

如何获得完整的URL而不仅仅是完整的URL /p/drinks?q=cold&price=200

我已经尝试过使用this.router.url此命令,但/p/drinks?q=cold&price=200不能提供完整的主机名。

我不想使用的window.location.href原因是它导致ng-toolkit / universal中的渲染出现问题

我尝试遵循此解决方案,这似乎与我存在相同的问题,并且也进行了更新

如何在Angular2中获取服务域名

这是我的代码

windowProvider.js

import { InjectionToken, FactoryProvider } from '@angular/core';

export const WINDOW = new InjectionToken<Window>('window');

const windowProvider: FactoryProvider = {
  provide: WINDOW,
  useFactory: () => window
};

export const WINDOW_PROVIDERS = [
  windowProvider
];
Run Code Online (Sandbox Code Playgroud)

app.module.ts中

@NgModule({
    .......
    providers:[
    .......
    windowProvider
   ]
})
Run Code Online (Sandbox Code Playgroud)

在我的必填页面中:

import {WINDOW as WindowFactory} from '../../factory/windowProvider';
......
 constructor(private router: Router, private helper: Helpers, …
Run Code Online (Sandbox Code Playgroud)

javascript angular-universal angular angular7

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

升级到V8后,@ ViewChild('tTaskTeam',{阅读:MatAutocompleteTrigger})无法正常工作

嗨,我今晚将项目从V7升级到了V8,阅读@viewChild时遇到了很多错误,这是由于他们进行了新的更新。我在所有@viewChild中都添加了{static:true},但随后遇到了我设置如下的这些触发器:

 @ViewChild('tTaskTeam', { read: MatAutocompleteTrigger }) autoCompleteForTaskTeamTrigger: MatAutocompleteTrigger;
  @ViewChild('tofficeUser', { read: MatAutocompleteTrigger }) officeUsersautoCompleteInputTrigger: MatAutocompleteTrigger;
  @ViewChild('recipientType', { read: MatAutocompleteTrigger })  recipientTypeTrigger: MatAutocompleteTrigger;
Run Code Online (Sandbox Code Playgroud)

viewChild只接受两个参数,我不能添加三个。因此,我读了:MatautocompleteTrigger出去,它破坏了我要执行的自动完成功能。

这是我收到的错误消息:

类型'{的参数为:typeof MatAutocompleteTrigger; }'不可分配给'{read ?: any; 静态:布尔值;}'。类型'{缺少属性'static',读取:typeof MatAutocompleteTrigger; }”,但类型为“ {必读?:任何;静态:布尔值;}'。ts(2345)core.d.ts(8066,9):此处声明为“静态”。

我添加了这些触发器,以在用户输入非所选选项列表中的字符时触发。因此它将清除并向用户显示一条消息,让他们再次选择。

这是完整的实现: HTML

<mat-form-field appearance="outline" class="task-info-form-field">
  <input tab-directive #tTaskTeam matInput (keyup.enter)="chooseFirstOption(autoCompleteForTaskTeam)" [matAutocomplete]="autoCompleteForTaskTeam" formControlName="tTaskTeam" matTooltip="You can search and it will try to autocomplete the name for you!" placeholder="Select Group">
  <mat-autocomplete #autoCompleteForTaskTeam='matAutocomplete' [displayWith]="displayTeamName">
    <mat-option class="matAutoCompleteSelect" *ngFor="let user of filteredOptions | async" [value]="user">
      <span>{{ user.TeamName }}</span> …
Run Code Online (Sandbox Code Playgroud)

upgrade angular angular7 angular8

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