【问题标题】:Load Angular2 template from external URL从外部 URL 加载 Angular2 模板
【发布时间】:2016-12-05 05:20:29
【问题描述】:

是否可以从外部 URL 加载模板? 这是我目前正在尝试做的事情,但 Angular 似乎忽略了它而没有抛出任何错误,并且页面只是无限期地继续加载。

@Component(
    selector: 'dashboard-page',
    //templateUrl: '../templates/dashboard-page.html',
    templateUrl: 'http://localhost:9091/html/dashboard-page.html',
    directives: const [],
    pipes: const []
)
class DashboardPage implements AfterContentInit {

http://localhost:9091/html/dashboard-page.html 我可以直接访问,并且 CORS 已设置为允许端口 8080 上的 Dart 应用程序与端口 9091 上的 Kotlin 应用程序通信。

我正在尝试根据帐户配置文件加载不同的 HTML 模板 - 不同的帐户会看到 Kotlin 代码提供不同的 HTML 模板。

这是 Angular2 加载外部模板文件可以做还是不能做的事情?

【问题讨论】:

  • 为什么不使用两个不同的组件,或者一个ngSwitch?从另一个应用程序提供它似乎过于复杂了。

标签: angular dart


【解决方案1】:

templateUrl 字符串必须是编译时常量,并在运行pub build 时读取。 即使它可以在构建时从HTTP url 读取,它也无济于事

我正在尝试根据帐户配置文件加载不同的 HTML 模板 - 不同的帐户会看到 Kotlin 代码提供不同的 HTML 模板。

改用*ngIf 或ngSwitch 或动态添加的组件。

【讨论】:

  • 我试图在后端切换模板(如果用户是 x 类型,则显示模板 x,否则显示模板 y)并且如果用户未登录,则在该模板上返回 404 以保护 html .所以我接受它,你不能在 templateUrl 中有外部 URL?
  • 不,模板在构建时由转换器处理以生成 Dart 代码,然后将其转换为 JS。你不能在运行时这样做。
猜你喜欢
  • 1970-01-01
  • 2019-10-28
  • 2018-12-04
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 2015-10-16
  • 1970-01-01
相关资源
最近更新 更多