3

在这个例子中,来自官方 Angular 2 文档,装饰器看起来像这样:

@Component({
  selector: 'my-app',
  template: '<h1>My First Angular App</h1>'
})

示例:不希望我的 HTML 代码中到处都是非标准元素,并且更喜欢类似的东西(注意:ng-angular只是我想看到的一个例子):

import { Component } from '@angular/core';
@Component({
  template: '<h1>Wait! Bloody wait some more.</h1>'
})
export class ListComponent { }

并使用了这样的东西:

<div ng-component="List"</div>

或者只有当你想创建一个新的 HTML 元素,然后在我上面的例子中坚持一个普通Listcontroller的元素时,才使用这样的 Component 装饰器div

4

3 回答 3

5

并不总是需要选择器,例如。您有一个由路由器加载并显示在

任何其他类型的组件都需要选择器。否则 Angular 将不知道它应该渲染什么组件。

我还没有听说过属性“ng-component”

[EDIT] kit 在他/她的第一条评论中有效地回答了:

您必须创建一个包含模板的元素,但它不必是新的 HTML 元素,因为选择器可以是元素、[属性] 或类,例如。

<div test>

可以是带有选择器的组件的元素:'[test]'

于 2016-09-23T19:51:32.277 回答
1

组件是一个新的 HTML 元素,类似于<my-component>Hello</my-component>.

我认为你想要的是一个指令

Attribute 指令改变 DOM 元素的外观或行为。

所以你可以做类似的事情<div makeItBlue>Blue stuff</div>

于 2016-09-23T20:47:21.423 回答
1

详细说明:选择器可以是标准的 CSS 选择器,因此您的 HTML 可以不以角度为中心。

例子:

    @Component({
        selector: 'div.player-list',
        ...
    })
    export class PlayerList {
    }

将匹配<div class="player-list and-possibly-some-other-classes">...</div>(即用您的角度模板替换 div)

于 2017-02-09T12:32:15.537 回答