Angular 2 alpha 22、如何通过属性给组件传值?
Angular 2 alpha 22, How to pass down a value to a component through attributes?
我用选择器声明了一个组件'app'
然后我像下面这样使用它:
<app title="Awesome Title"></app>
在我写的模板中:
The title passed {{ title }}
我确实添加了组件注释:
@Component({
selector: 'app',
properties: {title:'title'} // also tried ['title']
});
但是什么也没有显示,输出是
The title passed
有什么帮助吗?谢谢
出于某种原因,properties
似乎无法在引导的根应用程序上运行。
尝试创建一个名为 'title-app' 的组件并将其加载到 'app' 中。
// inner component
@Component({
selector: 'title-component',
properties: {title:'title'}
})
@View({ template: '<h1>{{title}}</h1>'})
class titleComponent{}
// root app
@Component({ selector: 'app' })
@View({
directives: titleComponent,
template: '<title-component [title]="Some Title"></title-component>'
})
class App{}
您可能还想使用最新版本的 Angular2:当前 alpha-26。从 alpha-26+ 开始,如果您的 属性 与您的名字相同,您只需调用一次即可。
properties: {'title': 'title'}
=> properties: 'title'
正确的做法是:
import {
ComponentAnnotation as Component,
ViewAnnotation as View, bootstrap
} from 'angular2/angular2';
import {Attribute} from 'angular2/src/core/annotations_impl/di';
@Component({
selector: 'app'
})
@View({
template: '{{goofy}} stuff'
})
class App {
goofy:string;
constructor(@Attribute('goofy') goofy:string) {
this.goofy = goofy;
}
}
bootstrap(App);
在此处查看完整的 Plunker http://plnkr.co/edit/n2XWez69HNJbixH3tEmR?p=preview
但是,这目前已损坏并且是一个已知问题 https://github.com/angular/angular/issues/1858
在撰写本文时,最新版本是 alpha.26。
属性 定义略有变化,因此这里是新语法
@Component({
selector: 'app',
properties: ['title:title']
});
<div [title]="Some Title"></div>
我已经开始撰写一系列博客文章来演示 Angular 2 个概念。在这里查看:
http://www.syntaxsuccess.com/viewarticle/angular-2.0-examples
我有一个工作示例,说明如何通过属性将属性分配给组件。查看树视图示例,因为它大量使用了它。
我用选择器声明了一个组件'app' 然后我像下面这样使用它:
<app title="Awesome Title"></app>
在我写的模板中:
The title passed {{ title }}
我确实添加了组件注释:
@Component({
selector: 'app',
properties: {title:'title'} // also tried ['title']
});
但是什么也没有显示,输出是
The title passed
有什么帮助吗?谢谢
出于某种原因,properties
似乎无法在引导的根应用程序上运行。
尝试创建一个名为 'title-app' 的组件并将其加载到 'app' 中。
// inner component
@Component({
selector: 'title-component',
properties: {title:'title'}
})
@View({ template: '<h1>{{title}}</h1>'})
class titleComponent{}
// root app
@Component({ selector: 'app' })
@View({
directives: titleComponent,
template: '<title-component [title]="Some Title"></title-component>'
})
class App{}
您可能还想使用最新版本的 Angular2:当前 alpha-26。从 alpha-26+ 开始,如果您的 属性 与您的名字相同,您只需调用一次即可。
properties: {'title': 'title'}
=> properties: 'title'
正确的做法是:
import {
ComponentAnnotation as Component,
ViewAnnotation as View, bootstrap
} from 'angular2/angular2';
import {Attribute} from 'angular2/src/core/annotations_impl/di';
@Component({
selector: 'app'
})
@View({
template: '{{goofy}} stuff'
})
class App {
goofy:string;
constructor(@Attribute('goofy') goofy:string) {
this.goofy = goofy;
}
}
bootstrap(App);
在此处查看完整的 Plunker http://plnkr.co/edit/n2XWez69HNJbixH3tEmR?p=preview
但是,这目前已损坏并且是一个已知问题 https://github.com/angular/angular/issues/1858
在撰写本文时,最新版本是 alpha.26。 属性 定义略有变化,因此这里是新语法
@Component({
selector: 'app',
properties: ['title:title']
});
<div [title]="Some Title"></div>
我已经开始撰写一系列博客文章来演示 Angular 2 个概念。在这里查看:
http://www.syntaxsuccess.com/viewarticle/angular-2.0-examples
我有一个工作示例,说明如何通过属性将属性分配给组件。查看树视图示例,因为它大量使用了它。