Angular 2支持异步注入吗?

假设我有这样的嵌套路由: /products/:productId/parts/:partId 创建了两个组件ProductComponent和PartComponent 在产品组件中,我使用http.get('/api/products/'+productId)返回产品对象。如果我可以设置注入器,使PartComponent仅在产品可用并将产品传递给构造函数后才能解析,我将非常高兴。可能吗 如果没有,我从PartComponent访问检索到的产品的选项是什么?您可以使用返回承诺的工厂。在构造

如何从组件访问RouterConfig(Angular2 RC4)

从Angular 2组件访问RouterConfig的首选方式是什么。我想检查我当前路线的所有子路线 我所能想到的最好方法是访问ActivatedRouteSnapshot(\u routeConfig)的私有成员变量。但我宁愿不使用它,因为它可能会发生变化 请参阅下面的代码片段: export class MyComponent{ constructor(private _router: Router, private _route: ActivatedRoute

Angular 如何使用*ngFor迭代对象键?

我一直在四处挖掘,发现我可以使用以下方法在对象上使用*ngFor: <div *ngFor="#obj of objs | ObjNgFor">...</div> 但是,当我有这样一个对象时: { "propertyA":{ "description":"this is the propertyA", "default":"sth" }, "propertyB":{ "description":"this is the propertyB",

无法理解angular2中的lambdas表达式?

角度2代码 heroes => this.heroes = heroes; 请告诉我这行的确切含义是什么?您的方法发送“英雄”数据,然后将其放入变量this.heros(两种不同的东西) 是一个接受参数的函数,函数体为 this.heroes = heroes 它将参数指定给this.heroes arrow函数有一个隐式返回,这意味着返回值是主体的结果 this.heroes = heroes 返回英雄 主要区别在于=>而不是 function(heroes) { this.he

angular2 jwt编译器元数据解析程序错误

我将用angular2 JWT介绍angular2和json web令牌。我在实例化类AuthHttp的对象时遇到一些问题 这是我的app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HTTP_PROVIDERS, Http } from '@angular/http'; import {

Angular2-从父组件中的子组件运行函数

我正在研究ng2 RC6。我有父组件和子组件 在子组件内部,我获得了ng2引导模式和启动功能: import { Component, ViewChild, AfterViewInit, Input } from '@angular/core'; import { ModalDirective } from 'ng2-bootstrap/ng2-bootstrap'; @Component({ selector: 'nba-form', templateUrl: './form

重定向到angular2中api调用后的路由

在处理(通过api)用户通过表单提交的数据后,我需要将用户重定向到不同的组件。下面是我试过的代码 组件中的 onSubmit(model){ if(model.valid === true) { this.SharedService.postFormdata(model).subscribe( data => { console.log(data)}, error => Observable.throw(error); );

Angular2的Angular1.x后端

我正在尝试从Angular 1.5迁移到Angular 2.4。 我对后端有疑问。是否可以在后端不做任何更改的情况下从Angular 1应用程序使用我的后端到Angular 2应用程序? 如果答案是肯定的,为什么我在尝试登录Angular2上的应用程序时出现此错误net::ERR\u SSL\u PROTOCOL\u error 角度2代码: login(loginData: User): Observable<User> { let data = 'grant_t

Angular 是否可以将无值输入属性传递给组件?

html元素可以通过一个无值属性传递给输入元素,该属性表示一个值,例如required。有可能对一个角度分量做同样的事情吗 例如: <my-component required></my-component> ... @Component({ selector: 'my-component', }) export class MyComponent implements OnInit { @Input() required; constructor()

如何从Angular 2响应中获取所有标题?

我在Chrome开发工具中看到的响应头与Angular 2在Chrome控制台中显示的响应头不匹配 执行以下操作后,仅显示内容类型标头: this.http.get(tempUrl).map(res=>{ console.log("csrf received"); console.log(res); }) 默认情况下,只有特定的“安全”头列表(对Javascript)公开。这是出于安全考虑。该清单如下: 缓存控制 内容语言 内容类型 到期 最后修改 布拉格马

如何在angular 2中在运行时动态更改templateUrl值

我需要在运行时动态更改模板URL,以便可以更改组件中呈现的视图。有什么办法可以做到这一点吗? 例如,我的组件需要网格视图和列表视图,但我不希望在同一模板中创建这两个视图,而是在单独的模板文件中维护视图。因此,如何在运行时更改组件的视图。(即)用新模板替换当前模板。提前感谢。Angular不支持在运行时更改模板URL,因为在编译时,模板中特定于Angular的构造将转换为JavaScript 你能做的就是 <ng-container *ngIf="isFoo"> template1

Angular 未满足的对等依赖@离子本机/本机音频

我正在尝试安装 但我收到了这个错误: UNMET PEER DEPENDENCY @ionic-native/core@3.4.2 @ionic-native/native-audio@3.6.1 我已删除“node_modules”文件夹,npm安装了依赖项,但仍收到此错误 "dependencies": { "@angular/common": "4.0.2", "@angular/compiler": "4.0.2", "@angular/compiler-cli

如何使用aot编译在Angular中提供替代的i18n语言链接?

我目前正在开发Angular应用程序的i18n。我使用AOT编译xlf文件来创建预编译的应用程序,如前所述。在构建中,我提供了特定于语言的base href(使用--base hrefparm)。例如,这意味着,我最终使用以下url路径创建了两个特定于语言的应用程序: /app_path/en/ /app_path/de/ 现在,我想通过将活动url中的en替换为de等方式,在我的应用程序中提供一个指向相应备用语言的链接。我使用了路由器注入,所以我可以访问它的url属性,但是这个属性没有提供

Angular 为什么要编译

所以javascript是一种解释语言。但是angular是一个javascript框架,但是是编译的。如果我错了,请纠正我,但在angular中,我们将typescript代码编译成javascript代码,然后进行解释。为什么要编译angular?angular是基于Typescript而不是Javascript构建的。由于Typescript只是一种语言扩展,浏览器无法解释它 编译器(或更准确的Transpiler)将角度类型脚本代码转换为浏览器可以解释的Javascript代码。从类型脚

Angular 2中的多个UI组件库

我刚接触Angular 2+。 从中了解了不同的UI组件库。 是否可以使用多个UI组件库来改善UI的外观,例如一个UI用于数据网格,另一个用于侧菜单? 那么怎么做呢?确实有可能,但不推荐 您应该考虑使用一个独特的UI组件库,原因有两个: 设计模式可能会从一个库冲突到另一个库 通常不建议使用两个不同的UI组件库,因为它们可能会产生冲突(例如,Bootstrap 4可能与Angular Material 2冲突,因为Bootstrap使用基于CSS显示表的网格系统,Angular Material

Angular 用于OTP验证的离子3读短信插件

我用过下面的插件 cordova插件短信 方法:- watchSMS() { if(window.SMS) window.SMS.startWatch(function(){ console.log('Succeed to start watching SMS'); document.addEventListener('onSMSArrive', this.smsArived); }, function(){ console.log('fai

&引用;找不到名称';要求'&引用;尝试在angular项目中集成firebase admin时

尝试将firebase管理员添加到我的项目时遇到“找不到名称‘require’”错误 我试过: npm安装@types/node--保存开发 添加“类型”:[“节点”] 我正在appComponent.ts中设置它,如下所示: constructor(private afAuth: AngularFireAuth, private afDatabase: AngularFireDatabase) { var admi = require("firebase-admin"); var s

Angular mat选项(onSelectionChange)--该值显示不正确

当我第一次在下拉列表中选择“城市”时,该值不会出现。然后,当我在第二个下拉列表中选择country时,第一个下拉列表中的第一个值会出现,而第二个下拉列表中的第二个值不会出现。关于我的代码中的问题有什么建议吗 代码.ts updateForm(event: MatOptionSelectionChange , city: City, country_id: Country, region_id: Region) { if (event.source.selected) {

从Angular 2+;中的自定义指令中读取/获取元素属性;

我正在构建一个自定义指令,希望在其中读取本机元素的一个属性(formControlName),然后有条件地向元素添加一个或多个属性 但是,当I console.log本机元素的属性时,我得到: 未定义 以下是我尝试过的: @Directive({ selector: '[appInputMod]' }) export class InputModDirective implements OnInit { constructor(public renderer: Renderer2, p

Angular 如何选择角5中的项目?

我选择了包括第一个组件定义的国家/地区: public countries: Country[]; private selectedCountry: Country; 我在html中有一个选择: <select [(ngModel)]="company.country" (change)="onSelectCountry($event)" style="width: 120px"> <option *ngFor="let c of countries" [ng

Angular 角度5 |带有ControlValueAccessor的ReactiveForm | onChange未触发

我有一个自定义ControlValueAccessor,它只是在输入上附加一个货币符号 @组件({ 选择器:“应用程序货币输入”, templateUrl:'./currency input.component.html', styleUrls:['./货币输入.component.scss'], 供应商:[ CurrencyPipe, { 提供:NG_值访问器, useExisting:forwardRef(()=>CurrencyInputComponent), 多:真的 } ] }) 导出

Angular 角度4获取父组件上元素的高度

我有一个演示 我有一个超级简单的父组件和一个子组件 import { Component, Input, ElementRef, OnInit, ViewChild } from '@angular/core'; @Component({ selector: 'child-comp', templateUrl: './child.component.html' }) export class ChildComponent implements OnInit { @Input()

Angular2:用于路由的共享组件

我使用一个组件在两个单独的模块中进行路由。Angular抛出一个关于2个声明的错误。我怎样才能共享这个 共享组件的典型指南显示了如何在模块中共享但不用于路由 我想在两个单独的模块中使用ProductComponent,但该组件用于路由,因此典型的共享组件策略不起作用 路由: 示例1.module.ts ` ` 示例2.module.ts ` ` 产品组件在这两个模块之间共享 imports:[ SharedModule, ] 有什么想法吗?您可以像这样在share

Angular 角度6-从另一个组件调用模态窗口组件

我有两个部分: 登录,MessageBox 当LoginComponent的授权不正常时,我想调用messageBox(它代表模式窗口),但a得到了这一点。 看起来我没有注册组件。但是当app.component.ts中的注册组件出现时,我得到了这个。问题的根源是什么。我真的被困在这里了 登录组件 import { Component, OnInit, ViewChild, Directive } from '@angular/core'; import { Fo

Angular 角度:AgGrid在订阅Observable时不会更新行

我正试图将rxjs和可观测数据合并到ag网格中。在实践中,我遵循一个官方ag网格示例: 我目前正在使用Angular 6。我将js文件更改为ts文件,并进行了相应的更改。我的索引文件中也不包含任何脚本。每当我调用脚本时,都会遇到一大堆MIME错误。所以我把代码转换成严格的角度。我相信这就是造成我的问题的原因。 我的目标是让随机行更改其值,而不必在订阅可观察的更新时刷新网页 在下面的代码中,您将看到基本上有一个区间函数,它选择要显示的随机数。当我运行代码时,所有数据都加载到我的网格中,但它不会刷新

为什么我在Angular 6中的服务出现错误?

我有一项服务: 从'@angular/core'导入{EventEmitter,Injectable}; @可注射() 导出类PingOnActionListenerService{ removingListener=新的EventEmitter(); removeListener():void{ this.removingListener.emit(); } 在组件A中,我将该服务称为: this.\u pingOnActionListenerService.RemovelListener(

Angular 如何实例化角度组件类?

我是Angular的新手,我看到我们使用类作为组件。但我没有看到任何地方通过使用new关键字来实例化类并从中生成对象实例。我们只是定义一个类并使用它。有些类甚至没有构造函数,比如app.component.ts,里面只有title属性。怎么会?在我读到的一篇文章中说 当Angular通过调用类上的new来创建组件或指令时,将调用构造函数 那么在哪里调用new?这一切都是在幕后发生的吗?那么,当从TS编译到JS时,如何在编译时实例化类并从中生成对象呢?如果是这样的话,我在哪里可以找到JS源代码来查

Angular 基本角度页面崩溃

我的Angular(或TypeScript)代码编译并提供服务,但当我尝试在Firefox中加载页面时,它崩溃了。代码是 app.component.html <h1>Anguilar</h1> <dd-button></dd-button> ddButton.component.ts import { DdButtonComponent } from './ddButton.component'; import { BrowserModule

Angular 使用数据布尔展开/折叠材质树(角度7)

我试图从数据源中获取一个使用布尔运算的材质树。我正在过滤输入上的datasource.data,这会导致每次用户输入内容时树都会崩溃。为了避免这种情况,我希望在特定行中使用布尔值来展开/折叠材质树。我已经用material表成功地完成了这项工作,但无法使它与树一起工作。这就是我到目前为止所做的: HTML文件: <mat-tree [dataSource]="nestedDataSource" [treeControl]="nestedTreeControl" class="example

Angular 角度材质虚拟滚动不在单元测试中渲染项目

我正在我的组件中使用cdk虚拟滚动视口+cdkvirtual for,它似乎工作正常 但是,在该组件的单元测试中,不会呈现项目 我制作了一个示例应用程序,当您提供该应用程序时,该示例仍然有效,但我编写的测试失败 app.module.ts app.component.ts app.component.html {{item}} app.component.spec.ts 从'@angular/core/testing'导入{TestBed,async}; 从“./app.component”

Angular 下拉列表中不填充API数据

我想从api下拉列表中检索数据,但我不知道代码中有什么错误 API的结果: [{"projectId":2,"projectName":"test","gates":[]},{"projectId":3,"projectName":"project1","gates":[]}] <div class="dropdown ml-auto"> <select (change)=selectedHandlerProjectName($event) class="btn b

Angular 角度';can';t解决';导入thrift库时出错

我安装了thrift library和他的打字文件: npm install thrift --save npm install @types/thrift --save 当我从节俭银行进口这样的东西时: import { TFramedTransport, TBinaryProtocol } from 'thrift'; 我创建了一个随机函数来使用这些导入: deserialize(message: Buffer): void { const tTransport = new TFr

Angular 传递给ngclass枚举字符串值

我已经创建了一个enum来组织我的新组件样式,我需要编写多个ng类表达式或直接动态传递到元素调用。如何直接调用元素 按钮类型。ts export enum ButtonTypes { Primary = 'button-primary', Secondary = 'button-secondary', Terciary = 'button-terciary', IconButton = 'button-icon', } bo-button.component.html

Angular 如何设置相对路径的字符串

我想创建一个链接,供用户单击以验证其电子邮件。为此,我需要创建链接。如何将this.router转换为字符串?我还需要检索用户的用户id。如果不可能,我可以创建一个在相对路径中传递的字符串吗 我试过这个: let loginRoute = this.router.navigateByUrl("./login", { queryParams: { key: data.id } }); 但显然它不起作用,因为它.navigateByUrl返回一个布尔结果 constructor(pr

Angular 调用Web服务时出现问题,可能与CORS有关

我正在使用VSCode构建angular应用程序,试图调用ASP.NET核心中构建的Web服务API,我已经使用Postman测试了Web API,它运行得很好 当从angular应用程序调用时,我得到以下错误 student-registration.component.ts:177 error student-registration.component.ts:178 SyntaxError: Unexpected end of input at trainingcreditvali

Angular Chid项目未显示在mat导航中

我想用角度矩阵设计呈现多级导航 下面是导航数据样本 navData=[{url:"/index",description:"Main Nav 1",children:[{url:"/index",description:"Sub Child 1"},{url:"/index",description:"Sub Child 2"},{url:"/index",description:"Sub Child 3"},{url:"/index",description:"Sub child 4",chi

Angular 如何在通过*ngFor列出用户的个人数据后查找这些数据

Im使用*ngFor打印包含我的客户数据的单个列表项。每个客户端都有自己的列表项。我试图使每个列表项都可以单击,以转到一个显示客户机个人数据的页面 我甚至不知道从哪里开始 <ul *ngIf="holdData"> <li *ngFor="let users of holdData"> <p class = "name content"> {{ users.name }} </p> <p class =

Angular 如何编写警报服务的单元测试

我不熟悉编写单元测试用例。我正在尝试为我的警报服务编写测试用例。我用的是angular 7。我的警报服务和警报模型代码如下所示 我的alert.service.ts import { Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { Alert, AlertType } from '../models/alert.model'; @Injectable({ prov

Angular rxjs可观测订阅何时同步执行?

使用下面的代码块 设ob=of(1,2,3); ob.订阅((v)=>{ 控制台日志(v) }) 控制台日志(“结束”) 这些值是同步发出的。subscribe中的功能是否保证在打印结束之前执行? 因此,输出将始终保持不变 1 2 3 end 如果您的可观察流仅运行同步代码,是的,它就像同步运行正常函数执行一样,但如果它是异步的,它将异步运行,而promise将始终异步运行 代码的异步版本类似于 let ob = of(1,2,3).pipe(mergeMap(num=>timer(0

Angular 角度firebase持久性从firestore获取新数据

我使用angularfirebase与firestore创建了angular 8应用程序。 该应用程序应该可以脱机工作,通过在firebase上启用Persience,可以很好地工作。(并为angular创建一个serviceworker等)。 现在我像这样从firestore获取数据 public async get(): Promise<Customer[]> { return await this.itemsCollection.valueChanges({ idField

Angular 如何在td标签中使用ngFor?

我使用ngFor在td中循环,但它会为每个数据创建新的单元。如何在一列中以逗号分隔显示所有数据 这是我的html文件:- 我想要这样的输出:- (如果skills是一个字符串数组,那么这就行了。因为它不是…) 有几种方法可以将它们连接到一个数组中。我反对在标记中添加太多JavaScript,但您可以在TS中声明一个helper函数: getSkillNames=(skills:any):string=>skills.map({skillName})=>skillName.join(',') 在模

Angular 角度反应形式设定值

我有一份物品清单。 我可以添加到此列表,也可以编辑此(此处的问题) 当我点击元素时,会出现一个带有反应形式的对话框。 添加工作项是正确的,但当我尝试编辑多选项时,该项为空。 添加时,此处显示代码: this.form = this.fb.group({ lastName: this.fb.control(''), firstName: this.fb.control(''), secondName: this.fb.control(''), fio: this.f

Angular ng build--产品在Azure CICD管道中不工作

我正在Azure中设置我的应用程序CI/CD,但我不明白为什么它在构建过程中仍然失败 这是我的yaml 触发器: -主人 游泳池: vmImage:“ubuntu最新版本” 步骤: -任务:NodeTool@0 投入: versionSpec:'8.x' displayName:'Install Node.js' -脚本:| npm安装 displayName:“npm安装” -脚本:| npm卸载-g npm缓存清理或npm缓存验证#(如果npm>5) npm安装-g@angular/cli

Angular 绑定到ngValue是否设置了它所持有的字符串值的最大长度?

我有一个ngFor指令绑定到带有option元素的对象列表。我将对象的id属性绑定到ngValue,以便以后使用。我注意到的一件奇怪的事情是,当我在.ts文件中获取值时,从数据库中获取的值中缺少部分id。当我使用值属性时,我得到了整个id 图中显示了最后6个字符中两个属性之间的差异 有人知道为什么会这样吗?ng reflect是否有限制字符串长度的因素?我想答案可能在这里: 对于我来说,存储此类属性的更好方法是使用数据属性: <option [attr.data-id]="id">

Angular 如何将具有某些id的路由重定向到人类友好的url,并在角路由中处理规范url?

我有两种url格式 example.com/posts/:postId和example.com/posts/:postId/:postTitle就像堆栈溢出单个问题url一样 在angular route中,我需要将所有带有:postId的URL重定向到:postId/:PostTitle,或者直接将带有:postId/:PostTitle的页面加载到同一页面 post.module.ts const routes: Routes = [ { path: ':postId

  1    2   3   4   5   6  ... 下一页 最后一页 共 1698 页