【问题标题】:Angular2 Root component with body selector带有主体选择器的 Angular2 根组件
【发布时间】:2017-04-24 06:57:51
【问题描述】:

我有一个使用 angularjs 的应用程序,我想开始将此应用程序重写为 Angular2。 不幸的是,原始应用程序是 Asp.Net MVC 的组合,而 body 与 ng-app 一样。

我想在 Angular2 中使用类似的方法将 AppComponent 选择器设置为正文。 这样我就可以逐步将旧应用程序重写为新组件了。

我的问题是组件内部需要模板。这可能没有模板,因为 html 将从服务器打印?

目前它是这样工作的。当用户点击页面服务器返回html

<html>
<body ng-app="flymark">

Here could be any angular directive or other controolers

</body>
</html>

【问题讨论】:

  • 您能否提供目前实施方式的摘录?
  • @ElwinArens 完成。但我认为这是不可能的,因为我想做的编译没有模板的组件,而 AOT 实际上是在编译模板

标签: angular


【解决方案1】:

如果我理解正确的话,这是可能的,您不必总是在组件内使用模板,这取决于您的偏好和需求:

您有两种使用模板的选择:

  1. 模板
  2. 模板网址:

    templateUrl: '@987654321@',
    styleUrls: ['https:/test.css']

您可以使用模板 URL 并将您的服务器 URL 传递给模板 URL,这应该可以正常工作,但是您必须对模板进行更改,即使它在服务器中以便与您的组件交互,否则它不会以您的方式响应想要...

您应该根据提供 URL 的需要将您的 html 分成几个其他组件。这将使您能够定位您想要的模板的任何部分。

【讨论】:

  • @VolodymyrBilyachat 是的,如果您将其作为单个 HTML 文件传递​​,则不会。因为没有办法将 body 作为选择器。但是您可以将您的 html 文件划分为单独的模板,然后通过不同的组件调用它,这样您就可以定位主体并为其提供单独的选择器。在任何情况下,您都可能需要对当前模板进行更改
  • 是的,但请阅读原始问题 :) 它是什么 :( 我无法重写整个应用程序。
  • 我只需要有可能将根组件绑定到正文,然后我将在里面插入正确的组件。
  • 这应该可以工作,您可以将其全部绑定到根组件中,但无论如何您可能需要对您的 html 文件进行一些调整你可以通过普通的根选择器调用它
  • &lt;root&gt;&lt;body&gt;&lt;/body&gt;&lt;/root&gt; 不起作用,浏览器将尝试修复页面并在 root 周围添加包装器 body 标记
猜你喜欢
  • 1970-01-01
  • 2017-06-11
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
相关资源
最近更新 更多