小编Kam*_*aja的帖子

如何从webpack生成的NPM包中正确加载资源?

我正在使用webpack为npm包生成适当的文件,这将包含一些反应组件.他们附加了一些CSS,引用了一些字体和图标.

使用file加载程序时,这些资产会使用fonts/my-font.woff主应用程序中缺少的绝对路径(即)进行错误引用.

有没有办法解决这个问题,让我的主应用程序寻找合适的文件?我宁愿修复软件包本身而不是像有人提到的那样复制资产,因为我可能无法完全控制主应用程序.

css npm reactjs webpack webpack-file-loader

10
推荐指数
1
解决办法
986
查看次数

找不到模块:错误:无法解析'F:\ Angular\HttpServices\http-services\src\app'中的'rxjs/add/operator/catch'

这是我的代码.

import { injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/catch';

@Injectable({
    providedIn: 'root'
})
export class PostsService {
    private url = 'https://jsonplaceholder.typicode.com/posts';
    constructor(private http : Http ) { }
    getPosts {
        return this.http.get(this.url);
    } 

    deletePost(id) {
        return this.http.get(this.url + '/' + id);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在我的电脑上执行此代码它正在工作,但没有在笔记本电脑上工作.这看起来很有趣,但这是事实.
这是我项目的结构

observable rxjs angular

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

Angular 6-NullInjectorError:在单元测试中没有HttpClient的提供程序

我正在导入和HttpClient在服务中使用,如下所示:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
    providedIn: 'root',
})
export class MyService {
    constructor(private http: HttpClient) { }

    getData() {
        return this.http.get("url...");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我ng test单元测试运行时,以及那些测试使用该服务时,出现了以下错误:

Error: StaticInjectorError(DynamicTestModule)[HttpClient]: StaticInjectorError(Platform: core)[HttpClient]: NullInjectorError: No provider for HttpClient!

HTTP上Angular 6文档只是说了做我上面的事情。

karma-jasmine angular angular-test

9
推荐指数
1
解决办法
1万
查看次数

在ReactiveForm中设置Angular 2 FormArray值?

这里已经存在类似的问题(设置初始值Angular 2 reactive formarray)但我对答案不满意或者可能正在寻找其他解决方案.

我认为使用FormArray的重点是传递对象数组,它应该创建相同数量的组件.但是在上面的示例中,如果查看提供的plunker,即使提供了两个Addresses对象,也会创建一个Address,因为它的空白版本已经在ngOnInit()中创建.

所以我的问题是,如果在ngOnInit()我有这样的地址:this._fb.array([])//空白列表,那么我该如何设置它的值,它动态地从N个地址创建N个地址在我的TypeScript数组中?

javascript forms reactive-forms angular angular-reactive-forms

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

Angular中的日期和货币验证(4)

我是Angular的新手.我正在使用角度4反应形式,并想出如何执行自定义验证.以下是我对数字的实现

function numberValidator(c: AbstractControl): { [key: string]: boolean } | null {
    if (c.pristine) {
        return null;
    }
    if (c.value.match(/.*[^0-9].*/)) {
        return { 'numeric': true };
    }
    return null;
}

 phoneControl: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(10), numberValidator]],
Run Code Online (Sandbox Code Playgroud)

我试图找出如何执行货币(有或没有两位小数)和最重要的日期字段.

原谅我,如果这在其他地方得到解答,但我找不到任何角度样本(4)

谢谢你的时间

typescript angular angular-forms

8
推荐指数
4
解决办法
3万
查看次数

Angular - 基于用户输入的构建表单

我正在构建一个应该是动态的Web表单.
当用户从列表中选择选项时,将根据其输入生成下一个表单输入.
例如:

<mat-form-field>
     <mat-select placeholder="Type" [(ngModel)]="row.Type" (change)="TypeChosen(row.Type, row)">
         <mat-option [value]="0">Treatment</mat-option>
         <mat-option [value]="1">Travel</mat-option>
         <mat-option [value]="2">Medication</mat-option>
         <mat-option [value]="3">Equipment</mat-option>
     </mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

如果他选择类型'治疗',他会获得另一个选择输入,其中包含一些其他输入的选项,如果他选择不同的类型,他会获得不同的选项和其他输入.

我知道我需要动态生成HTML内容,也许是动态组件.
以简单的方式做到这一点的最佳方法是什么?

html dom angular angular-forms

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

Angular Material mat-tree 获取复选框值

我正在使用Angular Material v6.0带有复选框的 MatTreeModule (mat-tree)。但是我很难弄清楚如何确定哪些节点已被检查,哪些节点尚未被检查。在 Angular Material 的示例中,他们提供了非常好的源代码来设置它,我能够很好地设置它。

但是,我无法确定哪些复选框已被选中,哪些未选中。我已经尝试了几个小时试图解决这个问题,但没有运气。

我的目标是最终用户将选中或取消选中树中的复选框,从那里开始,我需要在他们做出选择后运行一些过程。

但是我完全陷入了试图找出哪些 mat-tree-nodes 被检查和未检查的问题,而且我在任何地方都找不到好的工作示例。

关键源代码在这里

可以在此处找到有关 mat-tree 的更多信息

任何人都可以帮助确定复选框是否已被选中?

谢谢。

根据请求,我在此处从两个代码文件中添加代码:

app/tree-checklist-example.ts app/tree-checklist-example.html

来自“app/tree-checklist-example.ts”的打字稿源代码

import {SelectionModel} from '@angular/cdk/collections';
import {FlatTreeControl} from '@angular/cdk/tree';
import {Component, Injectable} from '@angular/core';
import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree';
import {BehaviorSubject} from 'rxjs';

/**
 * Node for to-do item
 */
export class TodoItemNode {
  children: TodoItemNode[];
  item: string;
}

/** Flat to-do item node with expandable and level information */
export class TodoItemFlatNode …
Run Code Online (Sandbox Code Playgroud)

angular-template angular-material angular angular-forms

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

此处不允许使用属性ng模型

我试图在下拉列表中使用ng-model属性,但是WebStorm一直在告诉它不被允许.当我运行应用程序时,它没有绑定所以我认为它与我的Angular版本有关.我正在运行最新版本,ng-model似乎适用于除select之外的所有其他元素.在上次更新中有什么变化吗?

<div class="form-group">
    <label for="selectPost" class="control-label">Posts</label>
    <select ng-model="post" class="form-control" id="selectPost" >
        <option ng-repeat="post in currentUser.posts" value="{{post._id}}">
            {{post.name}}
        </option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript webstorm angularjs

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

如何使用 formgroup 在 Angular 2 中使用 post 方法提交表单

我正在尝试以角度发出发布请求,但正如我发现的那样,如果我使用[formGroup],我就不能这样做,因为提交按钮不执行任何操作。我的代码看起来像这样

<form [formGroup]="formGroup" action="https://someUrl.com" method="post">
    <input type="text" name="lang" id="lang" value="en" formControlName = "lang" >
    <input type="submit" >
</form>
Run Code Online (Sandbox Code Playgroud)

如果我删除formGroup模块,它工作正常。是否存在错误、提交覆盖或其他问题?

post angular angular-forms

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

Observable.subscribe() 与带有 async/await 的 Promise

考虑在 aService中查询 Web 服务的以下两种方法:

getAssessmentById(id: number): Observable<MotorAssessorReport> {
  const url = environment.endPoints.assessment.base + 
    environment.endPoints.assessment.assessmentById + id;
  return this.httpClient.get<MotorAssessorReport>(url)
}

async getAssessmentByIdAsync(id: number): Promise<MotorAssessorReport> {
  const url = environment.endPoints.assessment.base + 
    environment.endPoints.assessment.assessmentById + id;
   const data = await this.httpClient.get<MotorAssessorReport>(url).toPromise();
  return data;
}
Run Code Online (Sandbox Code Playgroud)

第一个方法,getAssessmentById返回一个observable. 第二种方法,getAssessmentByIdAsync,返回一个promise

subscribeToAssessment() {
 this.assessmentService.getAssessmentById(this.assessmentId).subscribe(result => 
 {
    this.assessment = result;
 });
}

async fetchAssessment() {
  this.assessment = await this.assessmentService.getAssessmentByIdAsync(this.assessmentId);
}
Run Code Online (Sandbox Code Playgroud)

我一直使用第一种方法,返回一个Observable<T>,并订阅我的调用代码。

我最近才真正开始明白,只有当您期望返回多个结果时,才应该真正使用这种方法。换句话说,当使用 a 时Promise<T>,回调被调用的最大数量只有一次。

由于我一直期望我的服务器总是只返回一次,我的方法是错误的,我应该使用这种Promise<T> …

promise observable rxjs angular

7
推荐指数
3
解决办法
5043
查看次数