标签: Angular
angular2-routingangular2-di
假设我有这样的嵌套路由:
/products/:productId/parts/:partId
创建了两个组件ProductComponent和PartComponent
在产品组件中,我使用http.get('/api/products/'+productId)返回产品对象。如果我可以设置注入器,使PartComponent仅在产品可用并将产品传递给构造函数后才能解析,我将非常高兴。可能吗
如果没有,我从PartComponent访问检索到的产品的选项是什么?您可以使用返回承诺的工厂。在构造
从Angular 2组件访问RouterConfig的首选方式是什么。我想检查我当前路线的所有子路线
我所能想到的最好方法是访问ActivatedRouteSnapshot(\u routeConfig)的私有成员变量。但我宁愿不使用它,因为它可能会发生变化
请参阅下面的代码片段:
export class MyComponent{
constructor(private _router: Router,
private _route: ActivatedRoute
我一直在四处挖掘,发现我可以使用以下方法在对象上使用*ngFor:
<div *ngFor="#obj of objs | ObjNgFor">...</div>
但是,当我有这样一个对象时:
{
"propertyA":{
"description":"this is the propertyA",
"default":"sth"
},
"propertyB":{
"description":"this is the propertyB",
角度2代码
heroes => this.heroes = heroes;
请告诉我这行的确切含义是什么?您的方法发送“英雄”数据,然后将其放入变量this.heros(两种不同的东西)
是一个接受参数的函数,函数体为
this.heroes = heroes
它将参数指定给this.heroes
arrow函数有一个隐式返回,这意味着返回值是主体的结果
this.heroes = heroes
返回英雄
主要区别在于=>而不是
function(heroes) { this.he
我将用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 {
我正在研究ng2 RC6。我有父组件和子组件
在子组件内部,我获得了ng2引导模式和启动功能:
import { Component, ViewChild, AfterViewInit, Input } from '@angular/core';
import { ModalDirective } from 'ng2-bootstrap/ng2-bootstrap';
@Component({
selector: 'nba-form',
templateUrl: './form
在处理(通过api)用户通过表单提交的数据后,我需要将用户重定向到不同的组件。下面是我试过的代码
组件中的
onSubmit(model){
if(model.valid === true) {
this.SharedService.postFormdata(model).subscribe(
data => { console.log(data)},
error => Observable.throw(error);
);
我正在尝试从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
html元素可以通过一个无值属性传递给输入元素,该属性表示一个值,例如required。有可能对一个角度分量做同样的事情吗
例如:
<my-component required></my-component>
...
@Component({
selector: 'my-component',
})
export class MyComponent implements OnInit {
@Input() required;
constructor()
我在Chrome开发工具中看到的响应头与Angular 2在Chrome控制台中显示的响应头不匹配
执行以下操作后,仅显示内容类型标头:
this.http.get(tempUrl).map(res=>{
console.log("csrf received");
console.log(res);
})
默认情况下,只有特定的“安全”头列表(对Javascript)公开。这是出于安全考虑。该清单如下:
缓存控制
内容语言
内容类型
到期
最后修改
布拉格马
标签: Angular
angular2-templateangular-routing
我需要在运行时动态更改模板URL,以便可以更改组件中呈现的视图。有什么办法可以做到这一点吗?
例如,我的组件需要网格视图和列表视图,但我不希望在同一模板中创建这两个视图,而是在单独的模板文件中维护视图。因此,如何在运行时更改组件的视图。(即)用新模板替换当前模板。提前感谢。Angular不支持在运行时更改模板URL,因为在编译时,模板中特定于Angular的构造将转换为JavaScript
你能做的就是
<ng-container *ngIf="isFoo">
template1
我正在尝试为几个单选按钮设置formControlName,但问题是我要绑定的属性位于嵌套的formGroup中,因此出现以下错误:
EXCEPTION: Uncaught (in promise): Error: Cannot find control with name: 'pubSub'
模板:
<div class="form-group">
<div>
<label class="col-sm-2 control-label">
我正在尝试安装
但我收到了这个错误:
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
我目前正在开发Angular应用程序的i18n。我使用AOT编译xlf文件来创建预编译的应用程序,如前所述。在构建中,我提供了特定于语言的base href(使用--base hrefparm)。例如,这意味着,我最终使用以下url路径创建了两个特定于语言的应用程序:
/app_path/en/
/app_path/de/
现在,我想通过将活动url中的en替换为de等方式,在我的应用程序中提供一个指向相应备用语言的链接。我使用了路由器注入,所以我可以访问它的url属性,但是这个属性没有提供
问题是我们不想使用双向绑定。我们有如下组件集:
<select type="text" formControlName="region" (change)="regionChanged($event)">
<option *ngFor="let region of regionsDDL" [ngValue]="region">{{region.name}}</option>
</select>
所以javascript是一种解释语言。但是angular是一个javascript框架,但是是编译的。如果我错了,请纠正我,但在angular中,我们将typescript代码编译成javascript代码,然后进行解释。为什么要编译angular?angular是基于Typescript而不是Javascript构建的。由于Typescript只是一种语言扩展,浏览器无法解释它
编译器(或更准确的Transpiler)将角度类型脚本代码转换为浏览器可以解释的Javascript代码。从类型脚
我刚接触Angular 2+。
从中了解了不同的UI组件库。
是否可以使用多个UI组件库来改善UI的外观,例如一个UI用于数据网格,另一个用于侧菜单?
那么怎么做呢?确实有可能,但不推荐
您应该考虑使用一个独特的UI组件库,原因有两个:
设计模式可能会从一个库冲突到另一个库
通常不建议使用两个不同的UI组件库,因为它们可能会产生冲突(例如,Bootstrap 4可能与Angular Material 2冲突,因为Bootstrap使用基于CSS显示表的网格系统,Angular Material
我用过下面的插件
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
尝试将firebase管理员添加到我的项目时遇到“找不到名称‘require’”错误
我试过:
npm安装@types/node--保存开发
添加“类型”:[“节点”]
我正在appComponent.ts中设置它,如下所示:
constructor(private afAuth: AngularFireAuth, private afDatabase: AngularFireDatabase) {
var admi = require("firebase-admin");
var s
当我第一次在下拉列表中选择“城市”时,该值不会出现。然后,当我在第二个下拉列表中选择country时,第一个下拉列表中的第一个值会出现,而第二个下拉列表中的第二个值不会出现。关于我的代码中的问题有什么建议吗
代码.ts
updateForm(event: MatOptionSelectionChange , city: City, country_id: Country, region_id: Region) {
if (event.source.selected) {
我正在构建一个自定义指令,希望在其中读取本机元素的一个属性(formControlName),然后有条件地向元素添加一个或多个属性
但是,当I console.log本机元素的属性时,我得到:
未定义
以下是我尝试过的:
@Directive({
selector: '[appInputMod]'
})
export class InputModDirective implements OnInit {
constructor(public renderer: Renderer2, p
我选择了包括第一个组件定义的国家/地区:
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
angular5onchangeangular-reactive-formscontrolvalueaccessor
我有一个自定义ControlValueAccessor,它只是在输入上附加一个货币符号
@组件({
选择器:“应用程序货币输入”,
templateUrl:'./currency input.component.html',
styleUrls:['./货币输入.component.scss'],
供应商:[
CurrencyPipe,
{
提供:NG_值访问器,
useExisting:forwardRef(()=>CurrencyInputComponent),
多:真的
}
]
})
导出
我有一个演示
我有一个超级简单的父组件和一个子组件
import { Component, Input, ElementRef, OnInit, ViewChild } from '@angular/core';
@Component({
selector: 'child-comp',
templateUrl: './child.component.html'
})
export class ChildComponent implements OnInit {
@Input()
我使用一个组件在两个单独的模块中进行路由。Angular抛出一个关于2个声明的错误。我怎样才能共享这个
共享组件的典型指南显示了如何在模块中共享但不用于路由
我想在两个单独的模块中使用ProductComponent,但该组件用于路由,因此典型的共享组件策略不起作用
路由:
示例1.module.ts
`
`
示例2.module.ts
`
`
产品组件在这两个模块之间共享
imports:[
SharedModule,
]
有什么想法吗?您可以像这样在share
我有两个部分:
登录,MessageBox
当LoginComponent的授权不正常时,我想调用messageBox(它代表模式窗口),但a得到了这一点。
看起来我没有注册组件。但是当app.component.ts中的注册组件出现时,我得到了这个。问题的根源是什么。我真的被困在这里了
登录组件
import { Component, OnInit, ViewChild, Directive } from '@angular/core';
import { Fo
我正试图将rxjs和可观测数据合并到ag网格中。在实践中,我遵循一个官方ag网格示例:
我目前正在使用Angular 6。我将js文件更改为ts文件,并进行了相应的更改。我的索引文件中也不包含任何脚本。每当我调用脚本时,都会遇到一大堆MIME错误。所以我把代码转换成严格的角度。我相信这就是造成我的问题的原因。
我的目标是让随机行更改其值,而不必在订阅可观察的更新时刷新网页
在下面的代码中,您将看到基本上有一个区间函数,它选择要显示的随机数。当我运行代码时,所有数据都加载到我的网格中,但它不会刷新
我有一项服务:
从'@angular/core'导入{EventEmitter,Injectable};
@可注射()
导出类PingOnActionListenerService{
removingListener=新的EventEmitter();
removeListener():void{
this.removingListener.emit();
}
在组件A中,我将该服务称为:
this.\u pingOnActionListenerService.RemovelListener(
我是Angular的新手,我看到我们使用类作为组件。但我没有看到任何地方通过使用new关键字来实例化类并从中生成对象实例。我们只是定义一个类并使用它。有些类甚至没有构造函数,比如app.component.ts,里面只有title属性。怎么会?在我读到的一篇文章中说
当Angular通过调用类上的new来创建组件或指令时,将调用构造函数
那么在哪里调用new?这一切都是在幕后发生的吗?那么,当从TS编译到JS时,如何在编译时实例化类并从中生成对象呢?如果是这样的话,我在哪里可以找到JS源代码来查
我的Angular(或TypeScript)代码编译并提供服务,但当我尝试在Firefox中加载页面时,它崩溃了。代码是
app.component.html
<h1>Anguilar</h1>
<dd-button></dd-button>
ddButton.component.ts
import { DdButtonComponent } from './ddButton.component';
import { BrowserModule
我试图从数据源中获取一个使用布尔运算的材质树。我正在过滤输入上的datasource.data,这会导致每次用户输入内容时树都会崩溃。为了避免这种情况,我希望在特定行中使用布尔值来展开/折叠材质树。我已经用material表成功地完成了这项工作,但无法使它与树一起工作。这就是我到目前为止所做的:
HTML文件:
<mat-tree [dataSource]="nestedDataSource" [treeControl]="nestedTreeControl" class="example
每当从loan form.component.ts提交新贷款时,我想更新loans.component.ts中的数据源
因此,在loan form.component.ts中,我在表单提交时调用了它
onSubmit() {
var config = {
headers : {
'Content-Type': 'application/json;charset=utf-8;'
}
}
this.http
.post(this.g
标签: Angular
angular-material2angular-material-6
我正在我的组件中使用cdk虚拟滚动视口+cdkvirtual for,它似乎工作正常
但是,在该组件的单元测试中,不会呈现项目
我制作了一个示例应用程序,当您提供该应用程序时,该示例仍然有效,但我编写的测试失败
app.module.ts
app.component.ts
app.component.html
{{item}}
app.component.spec.ts
从'@angular/core/testing'导入{TestBed,async};
从“./app.component”
我想从api下拉列表中检索数据,但我不知道代码中有什么错误
API的结果:
[{"projectId":2,"projectName":"test","gates":[]},{"projectId":3,"projectName":"project1","gates":[]}]
<div class="dropdown ml-auto">
<select (change)=selectedHandlerProjectName($event) class="btn b
我安装了thrift library和他的打字文件:
npm install thrift --save
npm install @types/thrift --save
当我从节俭银行进口这样的东西时:
import { TFramedTransport, TBinaryProtocol } from 'thrift';
我创建了一个随机函数来使用这些导入:
deserialize(message: Buffer): void {
const tTransport = new TFr
我已经创建了一个enum来组织我的新组件样式,我需要编写多个ng类表达式或直接动态传递到元素调用。如何直接调用元素
按钮类型。ts
export enum ButtonTypes {
Primary = 'button-primary',
Secondary = 'button-secondary',
Terciary = 'button-terciary',
IconButton = 'button-icon',
}
bo-button.component.html
我想创建一个链接,供用户单击以验证其电子邮件。为此,我需要创建链接。如何将this.router转换为字符串?我还需要检索用户的用户id。如果不可能,我可以创建一个在相对路径中传递的字符串吗
我试过这个:
let loginRoute = this.router.navigateByUrl("./login", {
queryParams: { key: data.id }
});
但显然它不起作用,因为它.navigateByUrl返回一个布尔结果
constructor(pr
我正在使用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
我想用角度矩阵设计呈现多级导航
下面是导航数据样本
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
我在角度应用程序中得到以下错误。我试过了!viewState.successState==1,但同样的错误仍然存在
[ngClass]="{ 'form-border-success': viewState.successState == 3, 'form-border-error': !viewState.successState == 1 }
错误
This condition will always return 'false' since the types 'boolean' and
Im使用*ngFor打印包含我的客户数据的单个列表项。每个客户端都有自己的列表项。我试图使每个列表项都可以单击,以转到一个显示客户机个人数据的页面
我甚至不知道从哪里开始
<ul *ngIf="holdData">
<li *ngFor="let users of holdData">
<p class = "name content"> {{ users.name }} </p>
<p class =
我不熟悉编写单元测试用例。我正在尝试为我的警报服务编写测试用例。我用的是angular 7。我的警报服务和警报模型代码如下所示
我的alert.service.ts
import { Injectable } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { Alert, AlertType } from '../models/alert.model';
@Injectable({
prov
使用下面的代码块
设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
我使用angularfirebase与firestore创建了angular 8应用程序。
该应用程序应该可以脱机工作,通过在firebase上启用Persience,可以很好地工作。(并为angular创建一个serviceworker等)。
现在我像这样从firestore获取数据
public async get(): Promise<Customer[]> {
return await this.itemsCollection.valueChanges({ idField
我使用ngFor在td中循环,但它会为每个数据创建新的单元。如何在一列中以逗号分隔显示所有数据
这是我的html文件:-
我想要这样的输出:-
(如果skills是一个字符串数组,那么这就行了。因为它不是…)
有几种方法可以将它们连接到一个数组中。我反对在标记中添加太多JavaScript,但您可以在TS中声明一个helper函数:
getSkillNames=(skills:any):string=>skills.map({skillName})=>skillName.join(',')
在模
标签: Angular
angular-reactive-formsangular-formsangular2-formbuilder
我有一份物品清单。
我可以添加到此列表,也可以编辑此(此处的问题)
当我点击元素时,会出现一个带有反应形式的对话框。
添加工作项是正确的,但当我尝试编辑多选项时,该项为空。
添加时,此处显示代码:
this.form = this.fb.group({
lastName: this.fb.control(''),
firstName: this.fb.control(''),
secondName: this.fb.control(''),
fio: this.f
我正在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
我有一个ngFor指令绑定到带有option元素的对象列表。我将对象的id属性绑定到ngValue,以便以后使用。我注意到的一件奇怪的事情是,当我在.ts文件中获取值时,从数据库中获取的值中缺少部分id。当我使用值属性时,我得到了整个id
图中显示了最后6个字符中两个属性之间的差异
有人知道为什么会这样吗?ng reflect是否有限制字符串长度的因素?我想答案可能在这里:
对于我来说,存储此类属性的更好方法是使用数据属性:
<option [attr.data-id]="id">
标签: Angular
angular-routingcanonical-link
我有两种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
嗨,我想将mat菜单放置在菜单触发器的顶部。请在下面找到我的代码
<button (mouseover)="createMenuTrigger.openMenu() #createMenuTrigger="matMenuTrigger" [matMenuTriggerFor="createPlan"> OnHover </button>
<mat-menu #createPlan="matMenu&qu
1 2 3 4 5 6 ...
下一页 最后一页 共 1698 页