嵌套组件元素
Nested components elements
我遇到了 template/component 个问题,找不到任何答案。
我正在尝试将普通 Javascript 项目移动到 Angular2。在我的项目中,我实际上通过继承他人来创建一些元素。
示例:
文件header.html
<header class="some_class"></header>
文件 header_base.html 继承自 header.html
<header> <!-- This is the header element from the header.html file. -->
<img class="some_class" src="path/to/my/image">
...
</header>
编辑:
为了阐明我实际上是怎么做的,'inherits file from another',我使用 Javascript.
我的问题是我无法在 Angular 中找到如何做到这一点。
我的问题是,是否有任何方法可以完成类似的事情,或者我是否需要改变 'templating' 事情的方式?
提前致谢。
你的问题有点令人费解。您能否提供有关最终结果的更多详细信息?
听起来您正在寻找的是影子 dom 插入点,您可以在其中放置内容的组件。你有一个名为 Header 的组件,它应用了一些标记和样式,但你可以在不同的地方使用它来显示不同的内容?
如果是这样,您可以按照以下方式进行操作(注意:这是 Typescript,但可以用普通 Javascript 完成。查看 Angular 文档以获取示例):
CustomHeader.ts:
@Component({
selector: 'custom-header',
template: '<header class="some-class"><ng-content></ng-content></header>'
})
export class CustomHeader {
//if you need any logic in that component
}
然后在任何你需要使用这个组件的组件中,你将导入它:
app.ts:
import {CustomHeader} from './CustomHeader';
@Component({
selector: "my-app",
directives: [CustomHeader],
template: `<div>
<custom-header>
<img class="some_class" src="path/to/my/image" />
</custom-header>
</div>`
})
结果是,当您在 html 中使用该组件时,其内容将被 CustomHeader 模板的内容包裹。不确定这是否正是您的需要。
编辑:这是一篇描述此类组件的好文章:http://blog.thoughtram.io/angular/2015/03/27/building-a-zippy-component-in-angular-2.html
我遇到了 template/component 个问题,找不到任何答案。
我正在尝试将普通 Javascript 项目移动到 Angular2。在我的项目中,我实际上通过继承他人来创建一些元素。 示例:
文件header.html
<header class="some_class"></header>
文件 header_base.html 继承自 header.html
<header> <!-- This is the header element from the header.html file. -->
<img class="some_class" src="path/to/my/image">
...
</header>
编辑: 为了阐明我实际上是怎么做的,'inherits file from another',我使用 Javascript.
我的问题是我无法在 Angular 中找到如何做到这一点。 我的问题是,是否有任何方法可以完成类似的事情,或者我是否需要改变 'templating' 事情的方式?
提前致谢。
你的问题有点令人费解。您能否提供有关最终结果的更多详细信息?
听起来您正在寻找的是影子 dom 插入点,您可以在其中放置内容的组件。你有一个名为 Header 的组件,它应用了一些标记和样式,但你可以在不同的地方使用它来显示不同的内容?
如果是这样,您可以按照以下方式进行操作(注意:这是 Typescript,但可以用普通 Javascript 完成。查看 Angular 文档以获取示例):
CustomHeader.ts:
@Component({
selector: 'custom-header',
template: '<header class="some-class"><ng-content></ng-content></header>'
})
export class CustomHeader {
//if you need any logic in that component
}
然后在任何你需要使用这个组件的组件中,你将导入它:
app.ts:
import {CustomHeader} from './CustomHeader';
@Component({
selector: "my-app",
directives: [CustomHeader],
template: `<div>
<custom-header>
<img class="some_class" src="path/to/my/image" />
</custom-header>
</div>`
})
结果是,当您在 html 中使用该组件时,其内容将被 CustomHeader 模板的内容包裹。不确定这是否正是您的需要。
编辑:这是一篇描述此类组件的好文章:http://blog.thoughtram.io/angular/2015/03/27/building-a-zippy-component-in-angular-2.html