gpt4 book ai didi

javascript - 如何以 Angular 装饰类中的组件?

转载 作者:行者123 更新时间:2023-11-30 15:19:04 24 4
gpt4 key购买 nike

我想从 angular4 应用程序的类中更改组件的装饰器。

像这样:

import { Component, OnInit } from '@angular/core';
import { BooksService } from './../books.service';

@Component({
selector: 'users',
templateUrl: this.template,
styleUrls: ['./users.component.css']
})

export class UsersComponent {
users: any;
template: any = './users.component.html';

constructor(private booksService : BooksService) {
this.users = this.booksService.getItems();
}
}

我该如何实现?

最佳答案

装饰器不是类的一部分,因此装饰器中的 this 不引用组件。

技术上可以使用静态类来做到这一点:

@Component({
selector: 'users',
templateUrl: UsersComponent.template,
styleUrls: ['./users.component.css']
})

export class UsersComponent {
users: any;
public static template: any = './users.component.html';
}

...但这完全没有用,因为静态值与硬编码一样。值得庆幸的是,Angular 确实不需要在装饰器中使用任何变量。无论如何都行不通;它使用组件在幕后编译这些模板,更改模板会破坏编译器(尤其是 AOT 编译器)。

您是否正在尝试更改组件的 html?使用 Router 或结构指令通常是更好的主意。

为组件切换模板的更直接方法是使用 dynamic component直接访问其他组件的 TemplateRef 并可以将它们与 View 交换。

关于javascript - 如何以 Angular 装饰类中的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com