好吧...在1.x.y Angular 是

angular.module('myApp', []).directive('myDirective', function(){
    return {
       templateUrl : function(tElement, iAttrs){
           return 'http://' + iAttrs.myDirective // More...
       }
    }
});

但是..在Angular2中
@Component({
    selector: 'my-Directive',
    templateUrl: 'http://???'
})
class HelloWorld {
}

好吧,在doc中只说一个String。因为它被处理为angular2中的函数?

最佳答案

我必须实现类似的方法,并且解决方案与上面的Thomas Gassmann的评论相同,所以我决定分享一下。

当前( Angular 为4.4.5)@Component装饰器仅接受字符串,因此不会像在angularJS上那样动态编译模板。但是,您可以实现多个组件并动态切换该组件。下面的例子:

https://stackblitz.com/edit/angular-dynamic-templateurl

关于function - 具有angular2中函数的templateUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36075861/

10-09 22:29