小编Sha*_*nie的帖子

Angular FormBuilder有多个FormGroups

我有一个包含2个FromGroups(用户和地址)的表单

我收到以下错误:

 core.es5.js:1084 ERROR Error: Uncaught (in promise): Error: Cannot find control with name: 'street'
Run Code Online (Sandbox Code Playgroud)

当我使用这个课程

export class FormBuilderComp {
        addUserFrom: FormGroup;
        constructor( @Inject(FormBuilder) fb: FormBuilder) {
            this.addUserFrom = fb.group({
                userGroup: fb.group({
                    name: ['', Validators.required],
                    email: ['', Validators.required],
                    phone: ['', Validators.required]
                }),
                addressGroup: fb.group({
                    street: ['', Validators.required],
                    suite: ['', Validators.required],
                    city: ['', Validators.required],
                    zipCode: ['', Validators.required]
                })
            });
        }
    }
Run Code Online (Sandbox Code Playgroud)

...但是,如果我取出其中一个嵌套的FormGroups

  export class FormBuilderComp {
        addUserFrom: FormGroup;
        constructor( @Inject(FormBuilder) fb: FormBuilder) {
            this.addUserFrom = fb.group({
                userGroup: fb.group({
                    name: ['', Validators.required], …
Run Code Online (Sandbox Code Playgroud)

angular

12
推荐指数
1
解决办法
9074
查看次数

获取位置为固定的元素的高度

我试图在运行时获取元素的高度。我有一个导航栏,当我向下滚动时它会变得固定。我想将容器的填充设置为等于导航栏的高度(固定时)。问题是,一旦我将位置设置为固定,offsetHeight 就会变为 0。我可以使用子元素的 offsetHeight 并包括边距/填充来获取高度,但我正在寻找一种更干净的方法。

这使用 Angular 来添加/删除类。

<div class="nav-container" id="nvbr" (dblclick)="getHeight()">
  <app-navbar [fixed]="_fixed"></app-navbar>
</div>
<div [style.padding-top.px]="_fixed ? _navHeight : 0">
   <router-outlet></router-outlet>
</div>
Run Code Online (Sandbox Code Playgroud)

滚动事件(这告诉 Angular 将我的固定类添加到元素中):

if (window.pageYOffset > 55) {
        if (this._fixed === false)
            this._fixed = true
    }
    else {
        if (this._fixed === true)
            this._fixed = false
    }//else
Run Code Online (Sandbox Code Playgroud)

获取高度:

getHeight() {
    let navEl =   document.getElementById("nvbr")
    console.log(navEl, navEl.offsetHeight)
}
Run Code Online (Sandbox Code Playgroud)

如果我进入 chrome 并取消勾选位置:固定;然后我得到正确的高度

有任何想法吗?

html javascript

6
推荐指数
1
解决办法
2556
查看次数

使用Typescript获取资产文件夹中的文件名列表

如何使用Typescript获取文件夹中的所有文件名?这是一个有角度的2项目。

更具体地说,我要使用的是我的photos文件夹中的图像来设置引导轮播的图像。目前,我正在这样做:

private _images: Image[] = []

ngOnInit(): void {
    this._images = [
        { "title": "Slide 1", "url": "../photos/carousel/gg_slide 1.jpg" },
        { "title": "Slide 2", "url": "../photos/carousel/gg_slide 2.jpg" },
        { "title": "Slide 3", "url": "../photos/carousel/gg_slide 3.jpg" },
        { "title": "Slide 4", "url": "../photos/carousel/gg_slide 4.jpg" },
        { "title": "Slide 5", "url": "../photos/carousel/gg_slide 5.jpg" }
    ]
}//ngOnInit 
Run Code Online (Sandbox Code Playgroud)

然后像这样在html文件中使用images数组:

<carousel>
    <slide *ngFor="let img of _images">
        <img src="{{img.url}}" alt="{{img.title}}">
    </slide>
</carousel>
Run Code Online (Sandbox Code Playgroud)

我希望能够遍历photos文件夹中的所有文件并将它们添加到images数组。这样,更新轮播所需要做的就是更改photos文件夹中的照片。

typescript1.8 angular

5
推荐指数
1
解决办法
3760
查看次数

Angular2 ng-toasty ErrorHandler

当我处理全局错误时,我正在尝试使用ErrorHandler的实现来发布toast.问题是烤面包永远不会弹出.我在控制台中显示的publishToast方法中有一个console.log,没有出现其他错误.

如果我在组件中创建相同的publishToast方法,则toast工作正常,因此它似乎与组件的分离有关.

@Injectable()
export class AppErrorHandler implements ErrorHandler {

//---------------------------------------------------------------------//

constructor(private _toastyService: ToastyService) { }

//---------------------------------------------------------------------//

handleError(error: any): void {
    console.log("Error", error)
    alert("Error")
    this.publishToast(error, "An unexpected error occured")
}//handleError

//---------------------------------------------------------------------//

publishToast(error: any, msg?: string) {
    console.log("Publishing Toast")

    let title = "Error " + (error.statusCode ? error.statusCode : '')
    let message = msg ? msg : ''
        + error.body ? error.body : ''

    // Create the instance of ToastOptions 
    var toastOptions: ToastOptions = {
        title: title,
        msg: message,
        showClose: true,
        timeout: …
Run Code Online (Sandbox Code Playgroud)

toast custom-error-handling angular

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