Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以从Angular 4组件模板属性调用函数?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 是否可以从Angular 4组件模板属性调用函数?

Javascript 是否可以从Angular 4组件模板属性调用函数?,javascript,angular,typescript,Javascript,Angular,Typescript,我想知道是否有可能从如下所示的角度4组件的模板属性调用函数?我希望以字符串形式从函数返回模板,甚至可能返回模板url。模板将根据@Input字符串值进行选择,并作为函数签名的一部分 目前我得到了这个。getTemplate不是一个函数 任何帮助都将不胜感激 @Component({ selector: 'app-test', styleUrls: ['./test.component.css'], template: this.getTemplate(this.templateNam

我想知道是否有可能从如下所示的角度4组件的模板属性调用函数?我希望以字符串形式从函数返回模板,甚至可能返回模板url。模板将根据@Input字符串值进行选择,并作为函数签名的一部分

目前我得到了这个。getTemplate不是一个函数

任何帮助都将不胜感激

@Component({
  selector: 'app-test',
  styleUrls: ['./test.component.css'],
  template: this.getTemplate(this.templateName)
})

export class TestComponent implements OnInit {

     @Input() templateName: string = '';

     getTemplate(name: string) : string {

        if (name == "first") {
            return `<h5>First Template</h5>`
        }
        return `<h5>Second Template</h5>`
     }

     getTemplate(name: string) : string {
        if (name == "first") {
            return './first.component.html'
        } else {
            return './second.component.html'
        }
     }

     constructor() {}
     ngOnInit() {}
}
不,这是不可能的。您需要静态地引用它,否则angular将找不到要加载的模板

因为Angular编译器需要首先找到模板并能够访问它。它不能解析变量或函数


看看这个不幸的问题。这在angularjs中是可能的。感谢您提供的信息。CLI正在为组件选择器添加app-at-generation前缀,除了我试图解决的这个问题之外,它们似乎工作得很好。