我正在构建一个 Angular2+ 应用程序。1 周前开始学习 angular。
以下是结构-index.html - AppComponent(app-root) - Header Component(header) - Signup Component(signup)
SignupComponent 是一个模态。
成功登录后,我想用用户组件替换我的注册帐户(应该是带有多个链接的下拉菜单 - (帐户链接,注销链接))。
我认为的解决方案是,在成功登录后,我应该将事件从 Signup 组件发送到 Header 组件。
收到事件后,Header 组件应切换到 UserComponent 并隐藏 Signup 组件 Div。
用户组件应该有一个 Auth Gaurd,因为下拉菜单中的链接应该受到保护。
我有几个问题
我应该如何从 Signup Modal 路由到需要更改的 index.html?- 我是否需要刷新 index.html 以加载帐户组件?我应该如何路由到 index.html,它应该有新的 User 组件代替注册组件。?
这是一个正确的方法吗?如果不是,那么在 angular 2+ 中执行此操作的理想方法是什么?
我有一些这样的代码
<div ng-click="showMore = true">show more</div>
<div class="show-more' ng-show="showMore">
<div class="cell">
//some span
</div>
<div class="cell">
//some div
</div>
<div ng-click="showMore = false">show less</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当用户点击“显示更多”时,我想在动画中显示其余部分
在我的 css 中
.cell {
padding-top: 20px;
padding-bottom: 15px;
height: 110px;
}
Run Code Online (Sandbox Code Playgroud)
我必须摆脱ng-showor ng-hide,因为display:blockordisplay:none不会transition: height 0.5s linear;工作。所以我尝试将.cell折叠时的高度设置为0,展开时将其设置为110px,但是折叠时单元格高度并不是真正的0,因为它包含<span>或<div>具有高度和填充
在我的情况下,如何为展开/折叠过程设置动画?提前致谢
目前我的代码是通过在彼此内部嵌套 observables 来实现的...
makeRequest() {
return this.http.get().map((response: Response) => {
return this.http.get(response.doSomething());
}
}
Run Code Online (Sandbox Code Playgroud)
当我需要使用它时,我也使用嵌套订阅它们......
我很确定这不是正确的方法,现在我需要一种方法来做一些事情:
-> 发出请求 -> 检查回复 -> 如果回复表明令牌已过期 -> 获取新令牌并再次执行请求 -> 否则将结果传递
实现这一目标的推荐方法是什么?
非常感谢,
我有一个动态表单数组,如果我点击添加联系人按钮,它将添加动态表单字段后,我试图验证表单字段(validator.required,validator.pattern等...)和它的工作正常.
当我试图在html视图中显示以下错误消息时
<md-error *ngIf="myForm.controls.myContactArray.controls['name'].hasError('required')">
Email is <strong>required</strong>
</md-error>
Run Code Online (Sandbox Code Playgroud)
得到以下错误消息
core.es5.js:1020 ERROR TypeError: Cannot read property 'hasError' of undefined
at Object.eval [as updateDirectives] (RegisterComponent.ngfactory.js:453)
at Object.updateDirectives (core.es5.js:12770)
at checkAndUpdateView (core.es5.js:12288)
at callViewAction (core.es5.js:12651)
at execEmbeddedViewsAction (core.es5.js:12609)
at checkAndUpdateView (core.es5.js:12289)
at callViewAction (core.es5.js:12651)
at execComponentViewsAction (core.es5.js:12583)
at checkAndUpdateView (core.es5.js:12294)
at callViewAction (core.es5.js:12651)
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="container-fluid">
<md-card>
<button (click)="addColumn()" md-raised-button>Add Contacts</button>
<hr>
<form [formGroup] = "myForm" (ngSubmit) = "save(myForm.value)" class="contact-form">
<div formArrayName="myContactArray">
<div *ngFor="let myGroup of myForm.controls.myContactArray.controls; let rowIndex = index" >
<div …Run Code Online (Sandbox Code Playgroud) 在角度4中集成typed.js时,我得到以下错误.错误TypeError:WEBPACK_IMPORTED_MODULE_2_typed_js .Typed不是构造函数
我的组件是:
import { Component, OnInit } from '@angular/core';
import { Typed } from 'typed.js';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
ngOnInit() {
let options = {
strings: ["Books.", "Cinema.", "Paintings.","Music."],
typeSpeed: 100,
backSpeed: 100,
showCursor: true,
cursorChar: "|",
loop:true
}
let typed = new Typed(".typing-element", options);
}
}
Run Code Online (Sandbox Code Playgroud)
我的Html是
<div class="container">
<div class="home-header-title">
<span class="title">what you like </span>
<span class="typing-element"></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)